
On 5 June 2013 13:51, Edsko de Vries
It is a little bit messy mostly because parts of the AST get lost along the way: quasi-quotes in the renamer, data type declarations and other things during type checking. A more ideal way, but also more time consuming, would be to change this so that the renamer leaves evidence of the quasi-quotes in the tree, and the type checker returns the entire tree type checked, rather than just a subset. I think that ultimately this is the better approach, at least for our purposes -- I'm not sure about other tools, but since this would be a larger change that affects larger parts of the ghc pipeline I'm not sure that I'll be able to do it.
I needed something similar. In particular, I built a custom code generator, but now I need a similar feature for extracting information from a Haskell file (for IDE features). Since I needed to modify one-shot compilation mode I couldn't use the GHC API. For the IDE stuff I'm using Shake as the build manager, so that also needs a customized one-shot mode. For my current implementation I just copied and adapted the necessary parts of HscMain, DriverPipeline, etc. That's very messy, fragile and breaks on every GHC release so I'd really like to see the necessary features put into GHC. Do you have a working patch somewhere?