{-# LANGUAGE Safe #-}
module Language.Haskell.TH(
Q,
runQ,
reportError,
reportWarning,
report,
recover,
location,
Loc(..),
runIO,
reify,
reifyModule,
Info(..), ModuleInfo(..),
InstanceDec,
ParentName,
SumAlt, SumArity,
Arity,
Unlifted,
Extension(..),
extsEnabled, isExtEnabled,
lookupTypeName,
lookupValueName,
reifyFixity,
reifyType,
reifyInstances,
isInstance,
reifyRoles,
reifyAnnotations, AnnLookup(..),
reifyConStrictness,
TExp, unType,
Name, NameSpace,
mkName,
newName,
nameBase,
nameModule,
namePackage,
nameSpace,
tupleTypeName, tupleDataName,
unboxedTupleTypeName, unboxedTupleDataName,
unboxedSumTypeName,
unboxedSumDataName,
Dec(..), Con(..), Clause(..),
SourceUnpackedness(..), SourceStrictness(..), DecidedStrictness(..),
Bang(..), Strict, Foreign(..), Callconv(..), Safety(..), Pragma(..),
Inline(..), RuleMatch(..), Phases(..), RuleBndr(..), AnnTarget(..),
FunDep(..), TySynEqn(..), TypeFamilyHead(..),
Fixity(..), FixityDirection(..), defaultFixity, maxPrecedence,
PatSynDir(..), PatSynArgs(..),
Exp(..), Match(..), Body(..), Guard(..), Stmt(..), Range(..), Lit(..),
Pat(..), FieldExp, FieldPat,
Type(..), TyVarBndr(..), TyLit(..), Kind, Cxt, Pred, Syntax.Role(..),
FamilyResultSig(..), Syntax.InjectivityAnn(..), PatSynType,
module Language.Haskell.TH.Lib,
Ppr(..), pprint, pprExp, pprLit, pprPat, pprParendType
) where
import Language.Haskell.TH.Syntax as Syntax
import Language.Haskell.TH.Lib
import Language.Haskell.TH.Ppr