[Template-haskell] pprDec bug

Duncan Coutts duncan.coutts at worcester.oxford.ac.uk
Wed May 19 11:30:53 EDT 2004


On Wed, 2004-05-19 at 08:44, Simon Peyton-Jones wrote:
> | Is there an easy way to transform the declaration to use the
> | short forms of type names, e.g. "Int" instead of "GHC.Base:Int"?
> 
> That's harder, because it's not clear what qualifications to omit.  All?
> But then the program might be ambiguous.  I guess this is so you can
> feed it back into GHC, right?  You can always import GHC.Base,
> and then you'll be fine.

How about a pretty printer that is given a module context so is can
print the least-qualified identifiers possible given the identifiers in
scope in that module. I guess this is what ghc does when it prints its
error messages.

eg (in the Q monad):
module <- currentModule
pprExpInModuleContext module

Then not only will the code be valid to feed back to the compiler, but
it'll also be readable! (I've been looking at too much machine generated
code recently :-) )

Duncan



More information about the template-haskell mailing list