CoreUtils

Constructing expressions

mkCast

mkTick

mkTicks

mkTickNoHNF

tickHNFArgs

bindNonRec

needsCaseBinding

mkAltExpr

Taking expressions apart

findDefault

addDefault

findAlt

isDefaultAlt

mergeAlts

trimConArgs

filterAlts

combineIdenticalAlts

refineDefaultAlt

Properties of expressions

exprType

coreAltType

coreAltsType

exprIsDupable

exprIsTrivial

getIdFromTrivialExpr

exprIsBottom

getIdFromTrivialExpr_maybe

exprIsCheap

exprIsExpandable

exprIsCheap'

type CheapAppFun

exprIsHNF

exprOkForSpeculation

exprOkForSideEffects

exprIsWorkFree

exprIsBig

exprIsConLike

rhsIsStatic

isCheapApp

isExpandableApp

Equality

cheapEqExpr

cheapEqExpr'

eqExpr

diffExpr

diffBinds

Eta reduction

tryEtaReduce

Manipulating data constructors and types

exprToType

exprToCoercion_maybe

applyTypeToArgs

applyTypeToArg

dataConRepInstPat

dataConRepFSInstPat

isEmptyTy

Working with ticks

stripTicksTop

stripTicksTopE

stripTicksTopT

stripTicksE

stripTicksT