[Template-haskell] RE: template haskell printf doesn't compile...

Ian Lynagh igloo at earth.li
Sat Dec 4 20:55:55 EST 2004


On Fri, Dec 03, 2004 at 05:03:58PM -0000, Simon Peyton-Jones wrote:
> 
> | I was able to use the library documentation to get
> | printf to compile.  But I still can't figure out
> | how to produce Declarations. Is there a directory
> | somewhere with more examples?

There might be some in the testsuite:
http://cvs.haskell.org/cgi-bin/cvsweb.cgi/fptools/testsuite/tests/ghc-regress/th/
and I might be able to dig up a couple of larger programs.

However, I suspect your problems will be most easily solved by looking
at decs reified with ghci, e.g.:

$ ghci -fth
[...]
Prelude> :m + Language.Haskell.THSyntax
Prelude Language.Haskell.THSyntax> do d <- runQ [d| f x = x |]; print d
Loading package haskell98 ... linking ... done.
Loading package haskell-src ... linking ... done.
[FunD "f" [Clause [VarP "x'0"] (NormalB (VarE "x'0")) []]]
Prelude Language.Haskell.THSyntax> 

Also, note that the current design doesn't allow splicing in as many
places as you might like, e.g. you can't say

[d| f $(my_pattern) = x |]

> | Note this is being used to overhaul my relational
> | database code.

I'd be interested to have a look at it when it's done!


Thanks
Ian



More information about the template-haskell mailing list