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