hs-di-0.3.0: test/Assert.hs
{-# OPTIONS_GHC -fno-warn-missing-fields #-}
module Assert (aa) where
import Language.Haskell.TH
import Language.Haskell.TH.Quote
import Language.Haskell.Meta
import ComposeLTR
import Data.String.Utils
-- import Language.Haskell.QuasiQuotes
aa :: QuasiQuoter
aa = QuasiQuoter { quoteExp = f }
f :: String -> Q Exp
f ss = [| $(n "specify") $(return $ LitE $ StringL s) $ $(parseExp s $> either error return) |]
where
s = strip ss
n s = return $ VarE $ mkName s