|
|
|
|
| Synopsis |
|
| data Q a | | | runQ :: Quasi m => Q a -> m a | | | report :: Bool -> String -> Q () | | | recover :: Q a -> Q a -> Q a | | | reify :: Name -> Q Info | | | currentModule :: Q String | | | runIO :: IO a -> Q a | | | data Name | | | mkName :: String -> Name | | | newName :: String -> Q Name | | | nameBase :: Name -> String | | | nameModule :: Name -> Maybe String | | | tupleTypeName :: Int -> Name | | | tupleDataName :: Int -> Name | | | | | | | | | | | type Cxt = [Type] | | | data Match = Match Pat Body [Dec] | | | data Clause = Clause [Pat] Body [Dec] | | | | | | | | | | | | | | | type FieldExp = (Name, Exp) | | | type FieldPat = (Name, Pat) | | | | | | | | | | | data FunDep = FunDep [Name] [Name] | | | | | data Fixity = Fixity Int FixityDirection | | | | | defaultFixity :: Fixity | | | maxPrecedence :: Int | | | type InfoQ = Q Info | | | type ExpQ = Q Exp | | | type DecQ = Q Dec | | | type ConQ = Q Con | | | type TypeQ = Q Type | | | type CxtQ = Q Cxt | | | type MatchQ = Q Match | | | type ClauseQ = Q Clause | | | type BodyQ = Q Body | | | type GuardQ = Q Guard | | | type StmtQ = Q Stmt | | | type RangeQ = Q Range | | | type StrictTypeQ = Q StrictType | | | type VarStrictTypeQ = Q VarStrictType | | | type PatQ = Q Pat | | | type FieldPatQ = Q FieldPat | | | intPrimL :: Integer -> Lit | | | floatPrimL :: Rational -> Lit | | | doublePrimL :: Rational -> Lit | | | integerL :: Integer -> Lit | | | charL :: Char -> Lit | | | stringL :: String -> Lit | | | rationalL :: Rational -> Lit | | | litP :: Lit -> PatQ | | | varP :: Name -> PatQ | | | tupP :: [PatQ] -> PatQ | | | conP :: Name -> [PatQ] -> PatQ | | | infixP :: PatQ -> Name -> PatQ -> PatQ | | | tildeP :: PatQ -> PatQ | | | asP :: Name -> PatQ -> PatQ | | | wildP :: PatQ | | | recP :: Name -> [FieldPatQ] -> PatQ | | | listP :: [PatQ] -> PatQ | | | sigP :: PatQ -> TypeQ -> PatQ | | | fieldPat :: Name -> PatQ -> FieldPatQ | | | bindS :: PatQ -> ExpQ -> StmtQ | | | letS :: [DecQ] -> StmtQ | | | noBindS :: ExpQ -> StmtQ | | | parS :: [[StmtQ]] -> StmtQ | | | fromR :: ExpQ -> RangeQ | | | fromThenR :: ExpQ -> ExpQ -> RangeQ | | | fromToR :: ExpQ -> ExpQ -> RangeQ | | | fromThenToR :: ExpQ -> ExpQ -> ExpQ -> RangeQ | | | normalB :: ExpQ -> BodyQ | | | guardedB :: [Q (Guard, Exp)] -> BodyQ | | | normalG :: ExpQ -> GuardQ | | | normalGE :: ExpQ -> ExpQ -> Q (Guard, Exp) | | | patG :: [StmtQ] -> GuardQ | | | patGE :: [StmtQ] -> ExpQ -> Q (Guard, Exp) | | | match :: PatQ -> BodyQ -> [DecQ] -> MatchQ | | | clause :: [PatQ] -> BodyQ -> [DecQ] -> ClauseQ | | | dyn :: String -> Q Exp | | | global :: Name -> ExpQ | | | varE :: Name -> ExpQ | | | conE :: Name -> ExpQ | | | litE :: Lit -> ExpQ | | | appE :: ExpQ -> ExpQ -> ExpQ | | | infixE :: Maybe ExpQ -> ExpQ -> Maybe ExpQ -> ExpQ | | | infixApp :: ExpQ -> ExpQ -> ExpQ -> ExpQ | | | sectionL :: ExpQ -> ExpQ -> ExpQ | | | sectionR :: ExpQ -> ExpQ -> ExpQ | | | lamE :: [PatQ] -> ExpQ -> ExpQ | | | lam1E :: PatQ -> ExpQ -> ExpQ | | | tupE :: [ExpQ] -> ExpQ | | | condE :: ExpQ -> ExpQ -> ExpQ -> ExpQ | | | letE :: [DecQ] -> ExpQ -> ExpQ | | | caseE :: ExpQ -> [MatchQ] -> ExpQ | | | doE :: [StmtQ] -> ExpQ | | | compE :: [StmtQ] -> ExpQ | | | arithSeqE :: RangeQ -> ExpQ | | | appsE :: [ExpQ] -> ExpQ | | | fromE :: ExpQ -> ExpQ | | | fromThenE :: ExpQ -> ExpQ -> ExpQ | | | fromToE :: ExpQ -> ExpQ -> ExpQ | | | fromThenToE :: ExpQ -> ExpQ -> ExpQ -> ExpQ | | | listE :: [ExpQ] -> ExpQ | | | sigE :: ExpQ -> TypeQ -> ExpQ | | | recConE :: Name -> [Q (Name, Exp)] -> ExpQ | | | recUpdE :: ExpQ -> [Q (Name, Exp)] -> ExpQ | | | stringE :: String -> ExpQ | | | fieldExp :: Name -> ExpQ -> Q (Name, Exp) | | | valD :: PatQ -> BodyQ -> [DecQ] -> DecQ | | | funD :: Name -> [ClauseQ] -> DecQ | | | tySynD :: Name -> [Name] -> TypeQ -> DecQ | | | dataD :: CxtQ -> Name -> [Name] -> [ConQ] -> [Name] -> DecQ | | | newtypeD :: CxtQ -> Name -> [Name] -> ConQ -> [Name] -> DecQ | | | classD :: CxtQ -> Name -> [Name] -> [FunDep] -> [DecQ] -> DecQ | | | instanceD :: CxtQ -> TypeQ -> [DecQ] -> DecQ | | | sigD :: Name -> TypeQ -> DecQ | | | forImpD :: Callconv -> Safety -> String -> Name -> TypeQ -> DecQ | | | cxt :: [TypeQ] -> CxtQ | | | normalC :: Name -> [StrictTypeQ] -> ConQ | | | recC :: Name -> [VarStrictTypeQ] -> ConQ | | | infixC :: Q (Strict, Type) -> Name -> Q (Strict, Type) -> ConQ | | | forallT :: [Name] -> CxtQ -> TypeQ -> TypeQ | | | varT :: Name -> TypeQ | | | conT :: Name -> TypeQ | | | appT :: TypeQ -> TypeQ -> TypeQ | | | arrowT :: TypeQ | | | listT :: TypeQ | | | tupleT :: Int -> TypeQ | | | isStrict :: Q Strict | | | notStrict :: Q Strict | | | strictType :: Q Strict -> TypeQ -> StrictTypeQ | | | varStrictType :: Name -> StrictTypeQ -> VarStrictTypeQ | | | cCall :: Callconv | | | stdCall :: Callconv | | | unsafe :: Safety | | | safe :: Safety | | | threadsafe :: Safety | | | class Ppr a where | | | | pprint :: Ppr a => a -> String | | | pprExp :: Precedence -> Exp -> Doc | | | pprLit :: Precedence -> Lit -> Doc | | | pprPat :: Precedence -> Pat -> Doc | | | pprParendType :: Type -> Doc |
|
|
| Documentation |
|
| data Q a |
Instances | |
|
|
| runQ :: Quasi m => Q a -> m a |
|
| report :: Bool -> String -> Q () |
|
| recover :: Q a -> Q a -> Q a |
|
| reify :: Name -> Q Info |
| reify looks up information about the Name
|
|
| currentModule :: Q String |
| currentModule gives you the name of the module in which this
computation is spliced.
|
|
| runIO :: IO a -> Q a |
The runIO function lets you run an I/O computation in the Q monad.
Take care: you are guaranteed the ordering of calls to runIO within
a single Q computation, but not about the order in which splices are run.
Note: for various murky reasons, stdout and stderr handles are not
necesarily flushed when the compiler finishes running, so you should
flush them yourself.
|
|
| data Name |
Instances | |
|
|
| mkName :: String -> Name |
|
| newName :: String -> Q Name |
|
| nameBase :: Name -> String |
|
| nameModule :: Name -> Maybe String |
|
| tupleTypeName :: Int -> Name |
|
| tupleDataName :: Int -> Name |
|
| data Dec |
| Constructors | | Instances | |
|
|
| data Exp |
| Constructors | | Instances | |
|
|
| data Con |
| Constructors | | Instances | |
|
|
| data Type |
| Constructors | | Instances | |
|
|
| type Cxt = [Type] |
|
| data Match |
| Constructors | | Instances | |
|
|
| data Clause |
| Constructors | | Instances | |
|
|
| data Body |
| Constructors | | Instances | |
|
|
| data Guard |
| Constructors | | Instances | |
|
|
| data Stmt |
| Constructors | | Instances | |
|
|
| data Range |
| Constructors | | Instances | |
|
|
| data Lit |
| Constructors | | Instances | |
|
|
| data Pat |
| Constructors | | Instances | |
|
|
| type FieldExp = (Name, Exp) |
|
| type FieldPat = (Name, Pat) |
|
| data Strict |
| Constructors | | Instances | |
|
|
| data Foreign |
| Constructors | | Instances | |
|
|
| data Callconv |
| Constructors | | Instances | |
|
|
| data Safety |
| Constructors | | Instances | |
|
|
| data FunDep |
| Constructors | | Instances | |
|
|
| data Info |
| Constructors | | Instances | |
|
|
| data Fixity |
| Constructors | | Instances | |
|
|
| data FixityDirection |
| Constructors | | Instances | |
|
|
| defaultFixity :: Fixity |
|
| maxPrecedence :: Int |
|
| type InfoQ = Q Info |
|
| type ExpQ = Q Exp |
|
| type DecQ = Q Dec |
|
| type ConQ = Q Con |
|
| type TypeQ = Q Type |
|
| type CxtQ = Q Cxt |
|
| type MatchQ = Q Match |
|
| type ClauseQ = Q Clause |
|
| type BodyQ = Q Body |
|
| type GuardQ = Q Guard |
|
| type StmtQ = Q Stmt |
|
| type RangeQ = Q Range |
|
| type StrictTypeQ = Q StrictType |
|
| type VarStrictTypeQ = Q VarStrictType |
|
| type PatQ = Q Pat |
|
| type FieldPatQ = Q FieldPat |
|
| intPrimL :: Integer -> Lit |
|
| floatPrimL :: Rational -> Lit |
|
| doublePrimL :: Rational -> Lit |
|
| integerL :: Integer -> Lit |
|
| charL :: Char -> Lit |
|
| stringL :: String -> Lit |
|
| rationalL :: Rational -> Lit |
|
| litP :: Lit -> PatQ |
|
| varP :: Name -> PatQ |
|
| tupP :: [PatQ] -> PatQ |
|
| conP :: Name -> [PatQ] -> PatQ |
|
| infixP :: PatQ -> Name -> PatQ -> PatQ |
|
| tildeP :: PatQ -> PatQ |
|
| asP :: Name -> PatQ -> PatQ |
|
| wildP :: PatQ |
|
| recP :: Name -> [FieldPatQ] -> PatQ |
|
| listP :: [PatQ] -> PatQ |
|
| sigP :: PatQ -> TypeQ -> PatQ |
|
| fieldPat :: Name -> PatQ -> FieldPatQ |
|
| bindS :: PatQ -> ExpQ -> StmtQ |
|
| letS :: [DecQ] -> StmtQ |
|
| noBindS :: ExpQ -> StmtQ |
|
| parS :: [[StmtQ]] -> StmtQ |
|
| fromR :: ExpQ -> RangeQ |
|
| fromThenR :: ExpQ -> ExpQ -> RangeQ |
|
| fromToR :: ExpQ -> ExpQ -> RangeQ |
|
| fromThenToR :: ExpQ -> ExpQ -> ExpQ -> RangeQ |
|
| normalB :: ExpQ -> BodyQ |
|
| guardedB :: [Q (Guard, Exp)] -> BodyQ |
|
| normalG :: ExpQ -> GuardQ |
|
| normalGE :: ExpQ -> ExpQ -> Q (Guard, Exp) |
|
| patG :: [StmtQ] -> GuardQ |
|
| patGE :: [StmtQ] -> ExpQ -> Q (Guard, Exp) |
|
| match :: PatQ -> BodyQ -> [DecQ] -> MatchQ |
|
| clause :: [PatQ] -> BodyQ -> [DecQ] -> ClauseQ |
|
| dyn :: String -> Q Exp |
|
| global :: Name -> ExpQ |
|
| varE :: Name -> ExpQ |
|
| conE :: Name -> ExpQ |
|
| litE :: Lit -> ExpQ |
|
| appE :: ExpQ -> ExpQ -> ExpQ |
|
| infixE :: Maybe ExpQ -> ExpQ -> Maybe ExpQ -> ExpQ |
|
| infixApp :: ExpQ -> ExpQ -> ExpQ -> ExpQ |
|
| sectionL :: ExpQ -> ExpQ -> ExpQ |
|
| sectionR :: ExpQ -> ExpQ -> ExpQ |
|
| lamE :: [PatQ] -> ExpQ -> ExpQ |
|
| lam1E :: PatQ -> ExpQ -> ExpQ |
|
| tupE :: [ExpQ] -> ExpQ |
|
| condE :: ExpQ -> ExpQ -> ExpQ -> ExpQ |
|
| letE :: [DecQ] -> ExpQ -> ExpQ |
|
| caseE :: ExpQ -> [MatchQ] -> ExpQ |
|
| doE :: [StmtQ] -> ExpQ |
|
| compE :: [StmtQ] -> ExpQ |
|
| arithSeqE :: RangeQ -> ExpQ |
|
| appsE :: [ExpQ] -> ExpQ |
|
| fromE :: ExpQ -> ExpQ |
|
| fromThenE :: ExpQ -> ExpQ -> ExpQ |
|
| fromToE :: ExpQ -> ExpQ -> ExpQ |
|
| fromThenToE :: ExpQ -> ExpQ -> ExpQ -> ExpQ |
|
| listE :: [ExpQ] -> ExpQ |
|
| sigE :: ExpQ -> TypeQ -> ExpQ |
|
| recConE :: Name -> [Q (Name, Exp)] -> ExpQ |
|
| recUpdE :: ExpQ -> [Q (Name, Exp)] -> ExpQ |
|
| stringE :: String -> ExpQ |
|
| fieldExp :: Name -> ExpQ -> Q (Name, Exp) |
|
| valD :: PatQ -> BodyQ -> [DecQ] -> DecQ |
|
| funD :: Name -> [ClauseQ] -> DecQ |
|
| tySynD :: Name -> [Name] -> TypeQ -> DecQ |
|
| dataD :: CxtQ -> Name -> [Name] -> [ConQ] -> [Name] -> DecQ |
|
| newtypeD :: CxtQ -> Name -> [Name] -> ConQ -> [Name] -> DecQ |
|
| classD :: CxtQ -> Name -> [Name] -> [FunDep] -> [DecQ] -> DecQ |
|
| instanceD :: CxtQ -> TypeQ -> [DecQ] -> DecQ |
|
| sigD :: Name -> TypeQ -> DecQ |
|
| forImpD :: Callconv -> Safety -> String -> Name -> TypeQ -> DecQ |
|
| cxt :: [TypeQ] -> CxtQ |
|
| normalC :: Name -> [StrictTypeQ] -> ConQ |
|
| recC :: Name -> [VarStrictTypeQ] -> ConQ |
|
| infixC :: Q (Strict, Type) -> Name -> Q (Strict, Type) -> ConQ |
|
| forallT :: [Name] -> CxtQ -> TypeQ -> TypeQ |
|
| varT :: Name -> TypeQ |
|
| conT :: Name -> TypeQ |
|
| appT :: TypeQ -> TypeQ -> TypeQ |
|
| arrowT :: TypeQ |
|
| listT :: TypeQ |
|
| tupleT :: Int -> TypeQ |
|
| isStrict :: Q Strict |
|
| notStrict :: Q Strict |
|
| strictType :: Q Strict -> TypeQ -> StrictTypeQ |
|
| varStrictType :: Name -> StrictTypeQ -> VarStrictTypeQ |
|
| cCall :: Callconv |
|
| stdCall :: Callconv |
|
| unsafe :: Safety |
|
| safe :: Safety |
|
| threadsafe :: Safety |
|
| class Ppr a where |
| | Methods | | ppr :: a -> Doc | | | ppr_list :: [a] -> Doc |
| | Instances | |
|
|
| pprint :: Ppr a => a -> String |
|
| pprExp :: Precedence -> Exp -> Doc |
|
| pprLit :: Precedence -> Lit -> Doc |
|
| pprPat :: Precedence -> Pat -> Doc |
|
| pprParendType :: Type -> Doc |
|
| Produced by Haddock version 0.8 |