[Template-haskell] pprDec bug

Daniel Brown brownd at cse.ogi.edu
Tue May 18 15:58:58 EDT 2004


I'm using GHCi version 6.2.1 under Cygwin.  I'm trying to implement a
compiler that translates a DSL into Haskell; I'd like to build the
structure incrementally and then use the pretty printer to output the
target code.  However, the pretty printer does not always produce
valid output; sometimes needed parentheses are lacking, as in:

    Main> pprDec $ DataD [] "M" [] [NormalC "M" [(NotStrict, AppT (ConT Maybe) (ConT "Int"))]] []
    data M = M Maybe Int

Related question: I've defined a utility function

> pdq decq = runQ decq >>= mapM_ print . map pprDec

so I can pretty-print declarations in code brackets, viz.:

    Main> pdq [d| data M = M (Maybe Int) |]

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"?

-- Dan.



More information about the template-haskell mailing list