CoreSyn

Main data types

data Expr b

type Alt b

data Bind b

data AltCon

type Arg b

data Tickish id

type CoreProgram

type CoreExpr

type CoreAlt

type CoreBind

type CoreArg

type CoreBndr

type TaggedExpr t

type TaggedAlt t

type TaggedBind t

type TaggedArg t

data TaggedBndr t

Expr construction

mkLets

mkLams

mkApps

mkTyApps

mkCoApps

mkVarApps

mkIntLit

mkIntLitInt

mkWordLit

mkWordLitWord

mkWord64LitWord64

mkInt64LitInt64

mkCharLit

mkStringLit

mkFloatLit

mkFloatLitFloat

mkDoubleLit

mkDoubleLitDouble

mkConApp

mkTyBind

mkCoBind

varToCoreExpr

varsToCoreExprs

isId

cmpAltCon

cmpAlt

ltAlt

Simple Expr access functions and predicates

bindersOf

bindersOfBinds

rhssOfBind

rhssOfAlts

collectBinders

collectTyBinders

collectValBinders

collectTyAndValBinders

collectArgs

flattenBinds

isValArg

isTypeArg

isTyCoArg

valArgCount

valBndrCount

isRuntimeArg

isRuntimeVar

tickishCounts

tickishScoped

tickishIsCode

mkNoTick

mkNoScope

tickishCanSplit

Unfolding data types

data Unfolding

data UnfoldingGuidance

data UnfoldingSource

Constructing Unfoldings

noUnfolding

evaldUnfolding

mkOtherCon

needSaturated

unSaturatedOk

boringCxtNotOk

boringCxtOk

Predicates and deconstruction on Unfolding

unfoldingTemplate

setUnfoldingTemplate

expandUnfolding_maybe

maybeUnfoldingTemplate

otherCons

unfoldingArity

isValueUnfolding

isEvaldUnfolding

isCheapUnfolding

isExpandableUnfolding

isConLikeUnfolding

isCompulsoryUnfolding

isStableUnfolding

isStableCoreUnfolding_maybe

isClosedUnfolding

hasSomeUnfolding

canUnfold

neverUnfoldGuidance

isStableSource

Strictness

seqExpr

seqExprs

seqUnfolding

Annotated expression data types

type AnnExpr bndr annot

data AnnExpr' bndr annot

data AnnBind bndr annot

type AnnAlt bndr annot

Operations on annotated expressions

collectAnnArgs

Operations on annotations

deAnnotate

deAnnotate'

deAnnAlt

collectAnnBndrs

Core rule data types

data CoreRule

type RuleName

type IdUnfoldingFun

Operations on CoreRules

seqRules

ruleArity

ruleName

ruleIdName

ruleActivation

setRuleIdName

isBuiltinRule

isLocalRule

Core vectorisation declarations data type

data CoreVect