packages feed

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