Hi list,

I am 99.9% sure that this is currently not possible, but I might as well ask:
What I had in mind would be something like this (erroneous) code:

liftT :: a -> Q Type
liftT (_::a) = [t| $a |]

I have no idea how hard it would be to implement such a feature, or if it is remotely doable.
Naively, it seems to me that TH would have to delay evaluating the splice until the type variable is fully expanded, but all the necessary information would still be available at some point during compilation.

Cheers,
hugo

--
www.cs.cornell.edu/~hpacheco