{-# LANGUAGE Haskell2010 #-}
module Quasiquoter ( string ) where
import Language.Haskell.TH.Quote
import Language.Haskell.TH.Syntax
string :: QuasiQuoter
string :: QuasiQuoter
string = QuasiQuoter
{ quoteExp :: String -> Q Exp
quoteExp = forall (f :: * -> *) a. Applicative f => a -> f a
pure forall b c a. (b -> c) -> (a -> b) -> a -> c
. Lit -> Exp
LitE forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> Lit
StringL
, quotePat :: String -> Q Pat
quotePat = forall a. String -> Q a
invalidDomain
, quoteType :: String -> Q Type
quoteType = forall a. String -> Q a
invalidDomain
, quoteDec :: String -> Q [Dec]
quoteDec = forall a. String -> Q a
invalidDomain
}
where
invalidDomain :: String -> Q a
invalidDomain :: forall a. String -> Q a
invalidDomain String
_ = forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"stringQuoter: only valid in expression context"