CoreUtils

Constructing expressions

mkSCC

mkCoerce

mkCoerceI

bindNonRec

needsCaseBinding

mkAltExpr

mkPiType

mkPiTypes

Taking expressions apart

findDefault

findAlt

isDefaultAlt

mergeAlts

trimConArgs

Properties of expressions

exprType

coreAltType

coreAltsType

exprIsDupable

exprIsTrivial

exprIsCheap

exprIsExpandable

exprIsCheap'

type CheapAppFun

exprIsHNF

exprOkForSpeculation

exprIsBig

exprIsConLike

rhsIsStatic

isCheapApp

isExpandableApp

Expression and bindings size

coreBindsSize

exprSize

Hashing

hashExpr

Equality

cheapEqExpr

eqExpr

eqExprX

Eta reduction

tryEtaReduce

Manipulating data constructors and types

applyTypeToArgs

applyTypeToArg

dataConOrigInstPat

dataConRepInstPat

dataConRepFSInstPat