Language.Haskell.TH.Desugar

Desugared data types

data DExp

data DLetDec

data DPat

data DType

type DKind

type DCxt

data DPred

data DTyVarBndr

data DMatch

data DClause

data DDec

data Overlap

data NewOrData

data DTypeFamilyHead

data DFamilyResultSig

data InjectivityAnn

data DCon

data DConFields

type DBangType

type DVarBangType

data Bang

data SourceUnpackedness

data SourceStrictness

data DForeign

data DPragma

data DRuleBndr

data DTySynEqn

data DInfo

type DInstanceDec

data Role

data AnnTarget

The Desugar class

class Desugar th ds

Main desugaring functions

dsExp

dsDecs

dsType

dsInfo

dsPatOverExp

dsPatsOverExp

dsPatX

dsLetDecs

dsTvb

dsCxt

dsCon

dsForeign

dsPragma

dsRuleBndr

Secondary desugaring functions

type PatM q

dsPred

dsPat

dsDec

dsLetDec

dsMatches

dsBody

dsGuards

dsDoStmts

dsComp

dsClauses

dsBangType

dsVarBangType

dsTypeFamilyHead

dsFamilyResultSig

Converting desugared AST back to TH AST

Expanding type synonyms

expand

expandType

Reification

reifyWithWarning

withLocalDeclarations

dsReify

reifyWithLocals_maybe

reifyWithLocals

class DsMonad m

data DsM q a

Nested pattern flattening

scExp

scLetDec

Utility functions

applyDExp

applyDType

dPatToDExp

removeWilds

getDataD

dataConNameToDataName

dataConNameToCon

nameOccursIn

allNamesIn

flattenDValD

getRecordSelectors

mkTypeName

mkDataName

newUniqueName

mkTupleDExp

mkTupleDPat

maybeDLetE

maybeDCaseE

substTy

tupleDegree_maybe

tupleNameDegree_maybe

unboxedTupleDegree_maybe

unboxedTupleNameDegree_maybe

strictToBang

Extracting bound names

extractBoundNamesStmt

extractBoundNamesDec

extractBoundNamesPat