[project @ 2004-11-18 00:56:24 by igloo]
[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 currentModule, -- :: Q String
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 tupleTypeName, tupleDataName, -- Int -> Name
18
19 -- The algebraic data types
20 Dec(..), Exp(..), Con(..), Type(..), Cxt, Match(..),
21 Clause(..), Body(..), Guard(..), Stmt(..), Range(..),
22 Lit(..), Pat(..), FieldExp, FieldPat,
23 Strict(..), Foreign(..), Callconv(..), Safety(..), FunDep(..),
24 Info(..),
25 Fixity(..), FixityDirection(..), defaultFixity, maxPrecedence,
26
27 -- Library functions
28 InfoQ, ExpQ, DecQ, ConQ, TypeQ, CxtQ, MatchQ, ClauseQ, BodyQ, GuardQ,
29 StmtQ, RangeQ, StrictTypeQ, VarStrictTypeQ, PatQ, FieldPatQ,
30 intPrimL, floatPrimL, doublePrimL, integerL, charL, stringL, rationalL,
31 litP, varP, tupP, conP, infixP, tildeP, asP, wildP, recP, listP, sigP,
32 fieldPat,
33 bindS, letS, noBindS, parS,
34 fromR, fromThenR, fromToR, fromThenToR,
35 normalB, guardedB, normalG, normalGE, patG, patGE, match, clause,
36 dyn, global, varE, conE, litE, appE, infixE, infixApp, sectionL, sectionR,
37 lamE, lam1E, tupE, condE, letE, caseE, doE, compE, arithSeqE,
38 fromE, fromThenE, fromToE, fromThenToE,
39 listE, sigE, recConE, recUpdE, stringE, fieldExp,
40 valD, funD, tySynD, dataD, newtypeD, classD, instanceD, sigD, forImpD,
41 cxt, normalC, recC, infixC,
42 forallT, varT, conT, appT, arrowT, listT, tupleT,
43 isStrict, notStrict, strictType, varStrictType,
44 cCall, stdCall, unsafe, safe, threadsafe,
45
46 -- Pretty-printer
47 Ppr(..), pprint, pprExp, pprLit, pprPat, pprParendType
48
49 ) where
50
51 import Language.Haskell.TH.Syntax
52 import Language.Haskell.TH.Lib
53 import Language.Haskell.TH.Ppr
54