
On 22 March 2005 17:49, Matthias Neubauer wrote:
... we also need the state after renaming, but we then have to stop, I suppose!
Yes, the HaRE folks also want the renamed abstract syntax too. We haven't quite figured out how best to make it available: renaming is intertwined with typechecking a bit.
Because we want to do do our own typechecking, stopping after ghc's typechecking would be to late: in case of a type error, ghc falls back into the wrong context (at least that's what's happening right now when doing a :load inside ghci ...).
We, for our part, would need parts of the intermediate result (that is, the type environment and class declarations) existing either before parsing A, after parsing A, or, even better, after renaming A. Other users may be interested in other intermediate results.
Is there a way to get access to all the identifiers that are *imported* into the current module? Having that piece of information at hand, we could then use *lookupThing* to cumulate the initial type environment and the initial class environment for our analysis.
Or do you see another/better way of doing that?
The ModIface contains the usages, which includes everything that is *used* by the current module (not quite the same as everything that is imported, because this is a list of original names, not imported names). There is also the mi_globals list (in ModIface), which contains everything in scope at the top level of the module. From that I guess you could find everything that is imported by subtracting things that are defined in the local module. Cheers, Simon
participants (1)
-
Simon Marlow