|
| 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 |