CoreUtils

Constructing expressions

mkSCC

mkCoerce

bindNonRec

needsCaseBinding

mkAltExpr

mkPiType

mkPiTypes

Taking expressions apart

findDefault

findAlt

isDefaultAlt

mergeAlts

trimConArgs

Properties of expressions

exprType

coreAltType

coreAltsType

exprIsDupable

exprIsTrivial

exprIsBottom

exprIsCheap

exprIsExpandable

exprIsCheap'

type CheapAppFun

exprIsHNF

exprOkForSpeculation

exprIsBig

exprIsConLike

rhsIsStatic

isCheapApp

isExpandableApp

Expression and bindings size

coreBindsSize

exprSize

data CoreStats

coreBindsStats

Hashing

hashExpr

Equality

cheapEqExpr

eqExpr

eqExprX

Eta reduction

tryEtaReduce

Manipulating data constructors and types

applyTypeToArgs

applyTypeToArg

dataConRepInstPat

dataConRepFSInstPat