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