{-# LANGUAGE CPP #-}
module Language.C.Inline.Interruptible
  ( exp
  , pure
  , block
  ) where
#if __GLASGOW_HASKELL__ < 710
import           Prelude hiding (exp)
#else
import           Prelude hiding (exp, pure)
#endif
import qualified Language.Haskell.TH.Quote as TH
import qualified Language.Haskell.TH.Syntax as TH
import           Language.C.Inline.Context
import           Language.C.Inline.Internal
exp :: TH.QuasiQuoter
exp :: QuasiQuoter
exp = Purity
-> (Loc
    -> TypeQ
    -> Type CIdentifier
    -> [(CIdentifier, Type CIdentifier)]
    -> String
    -> ExpQ)
-> QuasiQuoter
genericQuote Purity
IO forall a b. (a -> b) -> a -> b
$ Safety
-> Loc
-> TypeQ
-> Type CIdentifier
-> [(CIdentifier, Type CIdentifier)]
-> String
-> ExpQ
inlineExp Safety
TH.Interruptible
pure :: TH.QuasiQuoter
pure :: QuasiQuoter
pure = Purity
-> (Loc
    -> TypeQ
    -> Type CIdentifier
    -> [(CIdentifier, Type CIdentifier)]
    -> String
    -> ExpQ)
-> QuasiQuoter
genericQuote Purity
Pure forall a b. (a -> b) -> a -> b
$ Safety
-> Loc
-> TypeQ
-> Type CIdentifier
-> [(CIdentifier, Type CIdentifier)]
-> String
-> ExpQ
inlineExp Safety
TH.Interruptible
block :: TH.QuasiQuoter
block :: QuasiQuoter
block = Purity
-> (Loc
    -> TypeQ
    -> Type CIdentifier
    -> [(CIdentifier, Type CIdentifier)]
    -> String
    -> ExpQ)
-> QuasiQuoter
genericQuote Purity
IO forall a b. (a -> b) -> a -> b
$ Safety
-> Bool
-> Maybe String
-> Loc
-> TypeQ
-> Type CIdentifier
-> [(CIdentifier, Type CIdentifier)]
-> String
-> ExpQ
inlineItems Safety
TH.Interruptible Bool
False forall a. Maybe a
Nothing