|
Language.Haskell.THSyntax | Portability | portable | Stability | experimental | Maintainer | libraries@haskell.org |
|
|
|
|
|
Description |
Abstract syntax definitions for Template Haskell.
|
|
|
|
newtype Q a |
|
|
qIO :: IO a -> Q a |
|
runQ :: Q a -> IO a |
|
returnQ :: a -> Q a |
|
bindQ :: Q a -> (a -> Q b) -> Q b |
|
sequenceQ :: [Q a] -> Q [a] |
|
counter :: IORef Int |
|
gensym :: String -> Q String |
|
class Lift t where |
|
|
data Lit |
|
|
data Pat |
|
|
type FieldPat = (String, Pat) |
|
data Match |
|
|
data Clause |
|
|
data Exp |
|
|
type FieldExp = (String, Exp) |
|
data RightHandSide |
|
|
data Statement |
|
|
data DotDot |
|
|
data Dec |
|
|
data Foreign |
|
|
data Callconv |
|
|
data Safety |
|
|
type Cxt = [Typ] |
|
data Strictness |
|
|
data Con |
|
|
type StrType = Q (Strictness, Typ) |
|
type VarStrType = Q (String, Strictness, Typ) |
|
data Program |
|
|
data Tag |
|
|
data Typ |
|
|
type ExpQ = Q Exp |
|
type DecQ = Q Dec |
|
type ConQ = Q Con |
|
type TypQ = Q Typ |
|
type CxtQ = Q Cxt |
|
type MatchQ = Q Match |
|
type ClauseQ = Q Clause |
|
type RightHandSideQ = Q RightHandSide |
|
type StatementQ = Q Statement |
|
type DotDotQ = Q DotDot |
|
fieldPat :: String -> Pat -> (String, Pat) |
|
bindSt :: Pat -> ExpQ -> StatementQ |
|
letSt :: [DecQ] -> StatementQ |
|
noBindSt :: ExpQ -> StatementQ |
|
parSt :: [[StatementQ]] -> StatementQ |
|
normal :: ExpQ -> RightHandSideQ |
|
guarded :: [(ExpQ, ExpQ)] -> RightHandSideQ |
|
match :: Pat -> RightHandSideQ -> [DecQ] -> MatchQ |
|
clause :: [Pat] -> RightHandSideQ -> [DecQ] -> ClauseQ |
|
global :: String -> ExpQ |
|
var :: String -> ExpQ |
|
con :: String -> ExpQ |
|
lit :: Lit -> ExpQ |
|
app :: ExpQ -> ExpQ -> ExpQ |
|
infixE :: Maybe ExpQ -> ExpQ -> Maybe ExpQ -> ExpQ |
|
from :: ExpQ -> ExpQ |
|
fromThen :: ExpQ -> ExpQ -> ExpQ |
|
fromTo :: ExpQ -> ExpQ -> ExpQ |
|
fromThenTo :: ExpQ -> ExpQ -> ExpQ -> ExpQ |
|
lam :: [Pat] -> ExpQ -> ExpQ |
|
lam1 :: Pat -> ExpQ -> ExpQ |
|
tup :: [ExpQ] -> ExpQ |
|
cond :: ExpQ -> ExpQ -> ExpQ -> ExpQ |
|
letE :: [DecQ] -> ExpQ -> ExpQ |
|
caseE :: ExpQ -> [MatchQ] -> ExpQ |
|
doE :: [StatementQ] -> ExpQ |
|
comp :: [StatementQ] -> ExpQ |
|
listExp :: [ExpQ] -> ExpQ |
|
sigExp :: ExpQ -> TypQ -> ExpQ |
|
recCon :: String -> [Q (String, Exp)] -> ExpQ |
|
recUpd :: ExpQ -> [Q (String, Exp)] -> ExpQ |
|
string :: String -> ExpQ |
|
fieldExp :: String -> ExpQ -> Q (String, Exp) |
|
val :: Pat -> RightHandSideQ -> [DecQ] -> DecQ |
|
fun :: String -> [ClauseQ] -> DecQ |
|
tySynD :: String -> [String] -> TypQ -> DecQ |
|
dataD :: CxtQ -> String -> [String] -> [ConQ] -> [String] -> DecQ |
|
newtypeD :: CxtQ -> String -> [String] -> ConQ -> [String] -> DecQ |
|
classD :: CxtQ -> String -> [String] -> [DecQ] -> DecQ |
|
inst :: CxtQ -> TypQ -> [DecQ] -> DecQ |
|
proto :: String -> TypQ -> DecQ |
|
cxt :: [TypQ] -> CxtQ |
|
constr :: String -> [Q (Strictness, Typ)] -> ConQ |
|
recConstr :: String -> [Q (String, Strictness, Typ)] -> ConQ |
|
infixConstr :: Q (Strictness, Typ) -> String -> Q (Strictness, Typ) -> ConQ |
|
tforall :: [String] -> CxtQ -> TypQ -> TypQ |
|
tvar :: String -> TypQ |
|
tcon :: Tag -> TypQ |
|
tapp :: TypQ -> TypQ -> TypQ |
|
arrowTyCon :: TypQ |
|
listTyCon :: TypQ |
|
tupleTyCon :: Int -> TypQ |
|
namedTyCon :: String -> TypQ |
|
strict :: Q Strictness |
|
nonstrict :: Q Strictness |
|
strictType :: Q Strictness -> TypQ -> Q (Strictness, Typ) |
|
varStrictType :: String -> Q (Strictness, Typ) -> Q (String, Strictness, Typ) |
|
apps :: [ExpQ] -> ExpQ |
|
simpleM :: Pat -> Exp -> Match |
|
nestDepth :: Int |
|
type Precedence = Int |
|
appPrec :: Precedence |
|
opPrec :: Precedence |
|
noPrec :: Precedence |
|
parensIf :: Bool -> Doc -> Doc |
|
pprExp :: Exp -> Doc |
|
pprExpI :: Precedence -> Exp -> Doc |
|
pprFields :: [(String, Exp)] -> Doc |
|
pprMaybeExp :: Precedence -> Maybe Exp -> Doc |
|
pprStatement :: Statement -> Doc |
|
pprMatch :: Match -> Doc |
|
pprRhs :: Bool -> RightHandSide -> Doc |
|
pprLit :: Precedence -> Lit -> Doc |
|
pprPat :: Pat -> Doc |
|
pprPatI :: Precedence -> Pat -> Doc |
|
pprDec :: Dec -> Doc |
|
pprForeign :: Foreign -> Doc |
|
pprClause :: Clause -> Doc |
|
pprCon :: Con -> Doc |
|
pprVarStrictTyp :: (String, Strictness, Typ) -> Doc |
|
pprStrictTyp :: (Strictness, Typ) -> Doc |
|
pprParendTyp :: Typ -> Doc |
|
pprTyp :: Typ -> Doc |
|
pprTcon :: Tag -> Doc |
|
split :: Typ -> (Typ, [Typ]) |
|
pprCxt :: Cxt -> Doc |
|
pprDotDot :: DotDot -> Doc |
|
pprDotDotI :: DotDot -> Doc |
|
where_clause :: [Dec] -> Doc |
|
showtextl :: (Show a) => a -> Doc |
|
Produced by Haddock version 0.4 |