
19 Jun
2013
19 Jun
'13
6:23 p.m.
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