
Hi Kenny,
\begin{code}
main = do session <- GHC.newSession GHC.JustTypecheck (Just "Test.hs")
dflags1 <- GHC.getSessionDynFlags session (dflags2, packageIds) <- Packages.initPackages dflags1 GHC.setSessionDynFlags session dflags2{GHC.hscTarget=GHC.HscNothing}
let name = "Test.hs" target <- GHC.guessTarget name Nothing GHC.addTarget session target GHC.load session GHC.LoadAllTargets
let preludeModule = GHC.mkModule (PackageConfig.stringToPackageId "base") (GHC.mkModuleName "Prelude") GHC.setContext session [] [preludeModule]
m_checkedModule <- GHC.checkModule session (GHC.mkModuleName "Test") ...
\end{code}
I am hoping to retrieve the inferred types of the declared Ids in Test.hs At this stage, what I obtain is a value of type Maybe CheckedModule.
You can certainly get the type of an arbritrary expression in your project module using something like the following: ghcTypeCheck session expr modName = unsafePerformIO( do Just ty <- exprType session (modName ++ "." ++ expr) ty' <- cleanType ty return $ showSDoc $ ppr ty' ) cleanType ty = do return $! GHC.dropForAlls ty That may be of some help... Cheers, Chris.