
13 Mar
2013
13 Mar
'13
5:11 a.m.
2013/3/13 Dominique Devriese
class ProductionRule p => LiftableProductionRule p where epsilonL :: a -> Q Exp -> p aSource
and associated epsilonLS :: (Lift v, LiftableProductionRule p) => v -> p v epsilonLS v = epsilonL v $ lift v
Note that the point of providing epsilonL as primitive and not just epsilonLS is that I can then still lift most functions I use: epsilonL (,) [| (,) |] Even though functions are not necessarily liftable. This is an alternative to Oleg's adding of e.g. pair etc. as DSL primitives. Dominique