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