Thanks a lot for your suggestion! I’ve looked into GHC source plugins. 
And, specifically, into your `hashtag-coerce` example:

https://github.com/mpickering/hashtag-coerce

As far as I can see, this allows only to analyse source code (to produce warnings or errors).
While my actual goal is actually to refactor code automatically. And I would
like to avoid full compilation process to make it work faster.

Thanks,
Dmitrii

On 21 Jun 2018, at 5:51 PM, Matthew Pickering <matthewtpickering@gmail.com> wrote:

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 <kovanikov@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