Language.Haskell.TH

The monad and its operations

data Q a

runQ

Administration: errors, locations and IO

reportError

reportWarning

report

recover

location

data Loc

runIO

Querying the compiler

Reify

reify

reifyModule

data Info

data ModuleInfo

type InstanceDec

type ParentName

type SumAlt

type SumArity

type Arity

type Unlifted

Language extension lookup

data Extension

extsEnabled

isExtEnabled

Name lookup

lookupTypeName

lookupValueName

Fixity lookup

reifyFixity

Instance lookup

reifyInstances

isInstance

Roles lookup

reifyRoles

Annotation lookup

reifyAnnotations

data AnnLookup

Constructor strictness lookup

reifyConStrictness

Typed expressions

data TExp a

unType

Names

data Name

data NameSpace

Constructing names

mkName

newName

Deconstructing names

nameBase

nameModule

namePackage

nameSpace

Built-in names

tupleTypeName

tupleDataName

unboxedTupleTypeName

unboxedTupleDataName

unboxedSumTypeName

unboxedSumDataName

The algebraic data types

Declarations

data Dec

data Con

data Clause

data SourceUnpackedness

data SourceStrictness

data DecidedStrictness

data Bang

type Strict

data Foreign

data Callconv

data Safety

data Pragma

data Inline

data RuleMatch

data Phases

data RuleBndr

data AnnTarget

data FunDep

data FamFlavour

data TySynEqn

data TypeFamilyHead

data Fixity

data FixityDirection

defaultFixity

maxPrecedence

data PatSynDir

data PatSynArgs

Expressions

data Exp

data Match

data Body

data Guard

data Stmt

data Range

data Lit

Patterns

data Pat

type FieldExp

type FieldPat

Types

data Type

data TyVarBndr

data TyLit

type Kind

type Cxt

type Pred

data Role

data FamilyResultSig

data InjectivityAnn

type PatSynType

Library functions

Pretty-printer

class Ppr a

pprint

pprExp

pprLit

pprPat

pprParendType