|
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) |
|
|
|
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 |
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 | |
|
|
type StrictType = (Strict, Type) |
|
type VarStrictType = (Name, Strict, Type) |
|
data FunDep |
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_tc :: String -> String -> String -> Name |
|
type Uniq = Int |
|
mkNameL :: String -> Uniq -> Name |
|
mkNameU :: String -> Uniq -> Name |
|
tupleTypeName :: Int -> Name |
|
tupleDataName :: Int -> Name |
|
type OccName = PackedString |
|
mkOccName :: String -> OccName |
|
occString :: OccName -> String |
|
type ModName = PackedString |
|
mkModName :: String -> ModName |
|
modString :: ModName -> String |
|
type PkgName = PackedString |
|
mkPkgName :: String -> PkgName |
|
pkgString :: PkgName -> String |
|
Produced by Haddock version 2.3.0 |