Re: Generating arithmetic expressions in TH

"Ahn, Ki Yung" <[email protected]> Wed, 21 Oct 2009 17:15:34 -0700
Newsgroups gmane.comp.lang.haskell.template
Message-ID <[email protected]>
Vitor Rodrigues wrote:
> Hello,
> 
> I am starting using TH to generate lambda expressions representing
> arithmetic expressions.
> My current problem is to generate code where all the lambda
> abstractions are in the top level.
> For example,
> 
> I would like to have
> 
> \x -> 1 + x
> 
> instead of
> 
> 1 + (\x -> x)

This is a type error (unless you have declared some special instance of 
Num to make that work), so you can't generate this with TH.  It will 
fail to type check when splicing or when type checking quasiquotes.

> My problem is that I  don't know in beforehand if the second operand
> is a variable or not.
> If so, I would like to build a top level abstraction.
> 
> It is this possible?
> 
> Regards,
> Vitor