ivory-0.1.0.9: Safe embedded C programming.

Safe HaskellNone
LanguageHaskell2010

Ivory.Language.Syntax.Concrete.QQ.Common

Synopsis

Documentation

type VarEnv = [(Key, Name)] Source #

Dereference expression environment

type Insert a = Key -> Name -> Exp -> QStM a () Source #

How to insert an expression, given its type, the binding variable, and the TH expression.

data QStM a b Source #

Instances
Monad (QStM a) Source # 
Instance details

Defined in Ivory.Language.Syntax.Concrete.QQ.Common

Methods

(>>=) :: QStM a a0 -> (a0 -> QStM a b) -> QStM a b #

(>>) :: QStM a a0 -> QStM a b -> QStM a b #

return :: a0 -> QStM a a0 #

fail :: String -> QStM a a0 #

Functor (QStM a) Source # 
Instance details

Defined in Ivory.Language.Syntax.Concrete.QQ.Common

Methods

fmap :: (a0 -> b) -> QStM a a0 -> QStM a b #

(<$) :: a0 -> QStM a b -> QStM a a0 #

Applicative (QStM a) Source # 
Instance details

Defined in Ivory.Language.Syntax.Concrete.QQ.Common

Methods

pure :: a0 -> QStM a a0 #

(<*>) :: QStM a (a0 -> b) -> QStM a a0 -> QStM a b #

liftA2 :: (a0 -> b -> c) -> QStM a a0 -> QStM a b -> QStM a c #

(*>) :: QStM a a0 -> QStM a b -> QStM a b #

(<*) :: QStM a a0 -> QStM a b -> QStM a a0 #

StateM (QStM a) (DList a) Source # 
Instance details

Defined in Ivory.Language.Syntax.Concrete.QQ.Common

Methods

get :: QStM a (DList a) #

set :: DList a -> QStM a () #

data Call Source #

Constructors

Call FnSym [Exp] 

type TStmtM a = QStM Stmt a Source #

callit :: Exp -> [Exp] -> Exp Source #

liftQ :: Q b -> QStM a b Source #

insert :: a -> QStM a () Source #

runToQ :: QStM a b -> Q (b, [a]) Source #

runToSt :: QStM a b -> Q [a] Source #