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. _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users