API. I.e., for each top level value definition, I want a list of the
top-level names used in the definition.
Using GHC API, once I have a 'CheckedModule', I have a dilemma:
a) If I use this field
parsedSource :: ParsedSource
I've got a giant AST that I need to traverse for names, there
being no help in the compiler to do so, AFAIK.
Have a look at http://hackage.haskell.org/trac/ghc/wiki/GhcApiAstTraversals
and its attachments (Instances.hs/Instances0.hs provides some Data/Typeable
instances for Ghc's Ast types using standalone deriving,
Utils.hs/APSSybTesting.hs
show some uses). There seems to be agreement that Data/Typeable instances
(though not necessarily these) should come with the Ghc Api in the future.
If you stop with the parsed AST, there is no scope information, so
you might still want to use the output of later phases for your task
(renamedSource might be suitable).
Hth,
Claus
b) If I use this field
coreBinds :: Maybe [CoreBind]
although I've got a simpler type to deal with, and some useful
functions
(e.g. exprFreeNames), I believe I'm now swimming in waters a bit
deep for me or maybe this is just a flawed approach:
- the core bindings created do not correspond exactly to the
bindings
in the source and 'exprFreeNames' is acting in surprising ways.
- etc, etc.
Does anyone have any advice for me here? Is there some way I can get
approach
(b) to work without becoming a wizard in GHC internals? Is there
anything I'm
missing?
Thanks,
Mark
_______________________________________________
Glasgow-haskell-users mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_______________________________________________
Glasgow-haskell-users mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users