Template Haskell: kind annotations
[ghc.git] / libraries / template-haskell / Language / Haskell / TH.hs
1 -- The public face of Template Haskell
2
3 module Language.Haskell.TH(
4 -- The monad and its operations
5 Q, runQ,
6 report, -- :: Bool -> String -> Q ()
7 recover, -- :: Q a -> Q a -> Q a
8 reify, -- :: Name -> Q Info
9 location, -- :: Q Location
10 runIO, -- :: IO a -> Q a
11
12 -- Names
13 Name,
14 mkName, -- :: String -> Name
15 newName, -- :: String -> Q Name
16 nameBase, -- :: Name -> String
17 nameModule, -- :: Name -> Maybe String
18 tupleTypeName, tupleDataName, -- Int -> Name
19
20 -- The algebraic data types
21 Dec(..), Exp(..), Con(..), Type(..), TyVarBndr(..), Kind(..), Cxt,
22 Pred(..), Match(..), Clause(..), Body(..), Guard(..), Stmt(..),
23 Range(..), Lit(..), Pat(..), FieldExp, FieldPat,
24 Strict(..), Foreign(..), Callconv(..), Safety(..), Pragma(..),
25 InlineSpec(..), FunDep(..), FamFlavour(..), Info(..), Loc(..),
26 Fixity(..), FixityDirection(..), defaultFixity, maxPrecedence,
27
28 -- Library functions
29 InfoQ, ExpQ, DecQ, ConQ, TypeQ, CxtQ, PredQ, MatchQ, ClauseQ, BodyQ,
30 GuardQ, StmtQ, RangeQ, StrictTypeQ, VarStrictTypeQ, PatQ, FieldPatQ,
31 InlineSpecQ,
32 intPrimL, wordPrimL, floatPrimL, doublePrimL, integerL, rationalL,
33 charL, stringL,
34 litP, varP, tupP, conP, infixP, tildeP, asP, wildP, recP, listP, sigP,
35 fieldPat,
36 bindS, letS, noBindS, parS,
37 fromR, fromThenR, fromToR, fromThenToR,
38 normalB, guardedB, normalG, normalGE, patG, patGE, match, clause,
39 dyn, global, varE, conE, litE, appE, infixE, infixApp, sectionL, sectionR,
40 lamE, lam1E, tupE, condE, letE, caseE, doE, compE, arithSeqE, appsE,
41 fromE, fromThenE, fromToE, fromThenToE,
42 listE, sigE, recConE, recUpdE, stringE, fieldExp,
43 valD, funD, tySynD, dataD, newtypeD, classD, instanceD, sigD, forImpD,
44 pragInlD, pragSpecD, familyNoKindD, familyKindD, dataInstD,
45 newtypeInstD, tySynInstD,
46 cxt, classP, equalP, normalC, recC, infixC,
47 forallT, varT, conT, appT, arrowT, listT, tupleT, sigT,
48 isStrict, notStrict, strictType, varStrictType,
49 cCall, stdCall, unsafe, safe, threadsafe,
50 inlineSpecNoPhase, inlineSpecPhase, typeFam, dataFam,
51
52 -- Pretty-printer
53 Ppr(..), pprint, pprExp, pprLit, pprPat, pprParendType
54
55 ) where
56
57 import Language.Haskell.TH.Syntax
58 import Language.Haskell.TH.Lib
59 import Language.Haskell.TH.Ppr
60