Make a TExp a wrap a TH.Exp instead of a TH.ExpQ.
authorGeoffrey Mainland <mainland@apeiron.net>
Tue, 21 May 2013 14:10:35 +0000 (15:10 +0100)
committerGeoffrey Mainland <mainland@apeiron.net>
Fri, 4 Oct 2013 18:58:26 +0000 (14:58 -0400)
We also provide two new helper functions:

  unTypeQ :: Q (TExp a) -> Q Exp

  unsafeTExpCoerce :: Q Exp -> Q (TExp a)

Language/Haskell/TH/Syntax.hs

index 899183e..79e2944 100644 (file)
@@ -145,7 +145,15 @@ instance Applicative Q where
 --
 -----------------------------------------------------
 
-newtype TExp a = TExp { unType :: Q Exp }
+newtype TExp a = TExp { unType :: Exp }
+
+unTypeQ :: Q (TExp a) -> Q Exp
+unTypeQ m = do { TExp e <- m
+               ; return e }
+
+unsafeTExpCoerce :: Q Exp -> Q (TExp a)
+unsafeTExpCoerce m = do { e <- m
+                        ; return (TExp e) }
 
 ----------------------------------------------------
 -- Packaged versions for the programmer, hiding the Quasi-ness