
Have you tried dataToPatQ and dataToExpQ? http://hackage.haskell.org/packages/archive/template-haskell/latest/doc/html... Geoff On 06/19/2013 11:23 PM, Brian Lewis wrote:
I want to use TH to generate functions like foo :: c -> h foo ... = ... foo ... = ... ... from lists of pairs :: [(c, h)]
For example, $(genFoo ''Int ''Bool [(0,False), (1,True)]) would generate foo 0 = False foo 1 = True
The problem is, I don't know how to generate the function's clauses. "foo 0 = ..." seems to be a LitP pattern. But "foo True = ..." seems to be a ConP pattern. The appropriate pattern depends on type c.
Here's code with more explanation and examples: http://hpaste.org/90163
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe