|
| Language.Haskell.TH.Syntax | | Portability | portable | | Stability | experimental | | Maintainer | libraries@haskell.org |
|
|
|
| Description |
| Abstract syntax definitions for Template Haskell.
|
|
| Synopsis |
|
|
|
| Documentation |
|
| class (Monad m, Functor m) => Quasi m where |
| | Methods | | | Instances | |
|
|
| class Lift t where |
| | Methods | | | Instances | | Lift Bool | | | Lift Char | | | Lift Int | | | Lift Integer | | | Lift a => Lift [a] | | | Lift a => Lift (Maybe a) | | | (Lift a, Lift b) => Lift (Either a b) | | | (Lift a, Lift b) => Lift (a, b) | | | (Lift a, Lift b, Lift c) => Lift (a, b, c) | | | (Lift a, Lift b, Lift c, Lift d) => Lift (a, b, c, d) | | | (Lift a, Lift b, Lift c, Lift d, Lift e) => Lift (a, b, c, d, e) | | | (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f) => Lift (a, b, c, d, e, f) | | | (Lift a, Lift b, Lift c, Lift d, Lift e, Lift f, Lift g) => Lift (a, b, c, d, e, f, g) | |
|
|
|
| liftString :: String -> Q Exp |
|
| 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
|
|
| location :: Q Loc |
| location gives you the Location at 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 |
| Constructors | | Instances | |
|
|
| mkName :: String -> Name |
|
| newName :: String -> Q Name |
|
| nameBase :: Name -> String |
|
| nameModule :: Name -> Maybe String |
|
| showName :: Name -> String |
|
| showName' :: NameIs -> Name -> String |
|
| data NameIs |
|
|
| data Dec |
| Constructors | | Instances | |
|
|
| data Exp |
| The CompE constructor represents a list comprehension, and
takes a [Stmt]. The result expression of the comprehension is
the *last* of these, and should be a NoBindS.
E.g. [ f x | x <- xs ] is represented by
CompE [BindS (VarP x) (VarE xs), NoBindS (AppE (VarE f) (VarE x))]
| | Constructors | | Instances | |
|
|
| data Con |
| Constructors | | Instances | |
|
|
| data Type |
| Constructors | | Instances | |
|
|
| data TyVarBndr |
| Constructors | | Instances | |
|
|
| data Kind |
| Constructors | | Instances | |
|
|
| type Cxt = [Pred] |
|
| data Pred |
| Constructors | | Instances | |
|
|
| 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 Pragma |
| Constructors | | Instances | |
|
|
| data InlineSpec |
| Constructors | | Instances | |
|
|
| type StrictType = (Strict, Type) |
|
| type VarStrictType = (Name, Strict, Type) |
|
| data FunDep |
| Constructors | | Instances | |
|
|
| data FamFlavour |
| Constructors | | Instances | |
|
|
| data Info |
| Constructors | | Instances | |
|
|
| data Loc |
|
|
| type CharPos = (Int, Int) |
|
| data Fixity |
| Constructors | | Instances | |
|
|
| data FixityDirection |
| Constructors | | Instances | |
|
|
| defaultFixity :: Fixity |
|
| maxPrecedence :: Int |
|
| returnQ :: a -> Q a |
|
| bindQ :: Q a -> (a -> Q b) -> Q b |
|
| sequenceQ :: [Q a] -> Q [a] |
|
| data NameFlavour |
| Constructors | | Instances | |
|
|
| data NameSpace |
| Constructors | | Instances | |
|
|
| mkNameG_v :: String -> String -> String -> Name |
|
| mkNameG_d :: String -> String -> String -> Name |
|
| mkNameG_tc :: String -> String -> String -> Name |
|
| type Uniq = Int |
|
| mkNameL :: String -> Uniq -> Name |
|
| mkNameU :: String -> Uniq -> Name |
|
| tupleTypeName :: Int -> Name |
|
| tupleDataName :: Int -> Name |
|
| data OccName |
Instances | |
|
|
| mkOccName :: String -> OccName |
|
| occString :: OccName -> String |
|
| data ModName |
Instances | |
|
|
| mkModName :: String -> ModName |
|
| modString :: ModName -> String |
|
| data PkgName |
Instances | |
|
|
| mkPkgName :: String -> PkgName |
|
| pkgString :: PkgName -> String |
|
| Produced by Haddock version 2.7.2 |