This doesn't answer your question directly but if you want to gather information about a module then using a source plugin would probably be easier and more robust than using the GHC API.
You need to write a function of type: ``` ModSummary -> TcGblEnv -> TcM TcGblEnv ``` In `TcGblEnv` you will find `tcg_rdr_env` which contains all top-level things and describes how they came to be in scope. Source plugins will be in GHC 8.6. Cheers, Matt On Thu, Jun 21, 2018 at 10:06 AM, Dmitriy Kovanikov <kovani...@gmail.com> wrote: > Hello! > > I’m trying to use GHC as a library. And my goal is to be able to gather > information about where each function or data type came from. I’ve started > by simply calling `getNamesInScope` function and observing its result. Here > is my code: > > * Main.hs: https://lpaste.net/9026688686753841152 > > And here is the code for my test modules: > > * test/X.hs: https://lpaste.net/6844657232357883904 > * test/Y.hs: https://lpaste.net/8673289058127970304 > > Unfortunately, my implementation doesn't work since I’m not very familiar > with GHC API. > And I see the following errors after executing my `Main.hs` file (I’m using > ghc-8.2.2): > > * error messages: https://lpaste.net/3316737208131518464 > > Could you please point me to places or parts of GHC API or some > documentation about module dependencies and how to make ghc see imports of > other modules? I can’t find simple and small enough usage example of this > part of the library. > > Thanks in advance, > Dmitrii Kovanikov > > _______________________________________________ > ghc-devs mailing list > ghc-devs@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs