27 Jun
2003
27 Jun
'03
12:51 p.m.
On Fri, Jun 27, 2003 at 11:43:21AM +0200, Eric Offermann wrote:
Thus, the possibility of using a "reifyVar c :: Q String" in the instance of lift c yielding the original name of c would be useful to keep the instance decleration generic. Any hint on implementing that?
What you could do is to pass c_succS an ExpQ instead, so: module Main where import SpliceC sampleC_succ = $(c_succS [| sampleC |]) module SpliceC where import Language.Haskell.THSyntax data C a = C {c_succ :: a -> a ,c_pred :: a -> a } c_succS :: ExpQ -> ExpQ c_succS c = [| \ a -> c_succ $c a |] sampleC :: C Int sampleC = C {c_succ = \ n -> n + 1 ,c_pred = \ n -> n - 1 } Thanks Ian