I assume by static semantics you mean the renamed Haskell source code. Due to template Haskell it (currently) is not possible to run the renamer and type checker separately. Note that the type checker output is very different in shape from the renamed output. The renamed output mostly follows the original source definitions, but the type checker output is basically only top-level definitions (no instances, classes have become data types, etc.) so it can be a bit tricky to map types back to the input terms.
Still, I think solution with the best trade-off between maintainability and usability is to use the GHC API and annotate a haskell-src-exts representation of the given input file. The GHC AST structures are volatile, and have lots of ugly invariants that need to be maintained. E.g., some fields are only defined after renaming and are others may no longer be defined after renaming. If you look at those fields when they are not defined, you get an error. Let me know if you decide to take on this project. On 24 January 2012 10:35, Christopher Brown <cm...@st-andrews.ac.uk> wrote: >>> >> >> Have you looked at ghc-syb-utils, which gives a neat way to print an AST? >> >> http://hackage.haskell.org/packages/archive/ghc-syb-utils/0.2.1.0/doc/html/GHC-SYB-Utils.html >> > > Yes I found that yesterday! > > Chris. > > > > >> -- >> JP Moresmau >> http://jpmoresmau.blogspot.com/ >> >> _______________________________________________ >> Haskell-Cafe mailing list >> Haskell-Cafe@haskell.org >> http://www.haskell.org/mailman/listinfo/haskell-cafe > > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe -- Push the envelope. Watch it bend. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe