CoreUtils

Constructing expressions

mkCast

mkTick

mkTicks

mkTickNoHNF

tickHNFArgs

bindNonRec

needsCaseBinding

mkAltExpr

Taking expressions apart

findDefault

findAlt

isDefaultAlt

mergeAlts

trimConArgs

filterAlts

Properties of expressions

exprType

coreAltType

coreAltsType

exprIsDupable

exprIsTrivial

getIdFromTrivialExpr

exprIsBottom

exprIsCheap

exprIsExpandable

exprIsCheap'

type CheapAppFun

exprIsHNF

exprOkForSpeculation

exprOkForSideEffects

exprIsWorkFree

exprIsBig

exprIsConLike

rhsIsStatic

isCheapApp

isExpandableApp

Expression and bindings size

coreBindsSize

exprSize

data CoreStats

coreBindsStats

Equality

cheapEqExpr

cheapEqExpr'

eqExpr

diffExpr

diffBinds

Eta reduction

tryEtaReduce

Manipulating data constructors and types

applyTypeToArgs

applyTypeToArg

dataConRepInstPat

dataConRepFSInstPat

Working with ticks

stripTicksTop

stripTicksTopE

stripTicksTopT

stripTicksE

stripTicksT