
Hi all, I'm looking for good examples of using Template Haskell to evaluate CAFs at compile time, e.g. if I have some expensive-to-calculate lookup table which I'd rather have evaluated at comile time and included in the executable as a constant value, rather than having it computed every time the executable is run. I know I've seen examples of this before, but now that I would actually like to study such an example, I can't seem to find any. Any suggestions? Or can anyone make up a simple example on the spot? =) thanks, -Brent

On Tue, Dec 04, 2007 at 12:21:40PM -0500, Brent Yorgey wrote:
I'm looking for good examples of using Template Haskell to evaluate CAFs at compile time, e.g. if I have some expensive-to-calculate lookup table which I'd rather have evaluated at comile time and included in the executable as a constant value, rather than having it computed every time the executable is run. I know I've seen examples of this before, but now that I would actually like to study such an example, I can't seem to find any. Any suggestions? Or can anyone make up a simple example on the spot? =)
For any Lift'able type you can do something like this: import Language.Haskell.TH.Syntax foo = $( lift (not True) ) where "not True" is the CAF (and it cannot refer to functions defined in the current module due to restrictions in teh TH implementation). Thanks Ian
participants (2)
-
Brent Yorgey
-
Ian Lynagh