Adding equality constraints
[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(..), Cxt, Pred(..), Match(..),
22 Clause(..), Body(..), Guard(..), Stmt(..), Range(..),
23 Lit(..), Pat(..), FieldExp, FieldPat,
24 Strict(..), Foreign(..), Callconv(..), Safety(..), FunDep(..),
25 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 intPrimL, wordPrimL, floatPrimL, doublePrimL, integerL, rationalL,
32 charL, stringL,
33 litP, varP, tupP, conP, infixP, tildeP, asP, wildP, recP, listP, sigP,
34 fieldPat,
35 bindS, letS, noBindS, parS,
36 fromR, fromThenR, fromToR, fromThenToR,
37 normalB, guardedB, normalG, normalGE, patG, patGE, match, clause,
38 dyn, global, varE, conE, litE, appE, infixE, infixApp, sectionL, sectionR,
39 lamE, lam1E, tupE, condE, letE, caseE, doE, compE, arithSeqE, appsE,
40 fromE, fromThenE, fromToE, fromThenToE,
41 listE, sigE, recConE, recUpdE, stringE, fieldExp,
42 valD, funD, tySynD, dataD, newtypeD, classD, instanceD, sigD, forImpD,
43 familyD, dataInstD, newtypeInstD, tySynInstD,
44 cxt, classP, equalP, normalC, recC, infixC,
45 forallT, varT, conT, appT, arrowT, listT, tupleT,
46 isStrict, notStrict, strictType, varStrictType,
47 cCall, stdCall, unsafe, safe, threadsafe, typeFam, dataFam,
48
49 -- Pretty-printer
50 Ppr(..), pprint, pprExp, pprLit, pprPat, pprParendType
51
52 ) where
53
54 import Language.Haskell.TH.Syntax
55 import Language.Haskell.TH.Lib
56 import Language.Haskell.TH.Ppr
57