CoreSyn

# Main data types

data Expr b

type Alt b

data Bind b

data AltCon

type Arg b

data Tickish id

data TickishScoping

data TickishPlacement

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

deTagExpr

## `Expr` construction

mkLets

mkLams

mkApps

mkTyApps

mkCoApps

mkVarApps

mkIntLit

mkIntLitInt

mkWordLit

mkWordLitWord

mkWord64LitWord64

mkInt64LitInt64

mkCharLit

mkStringLit

mkFloatLit

mkFloatLitFloat

mkDoubleLit

mkDoubleLitDouble

mkConApp

mkConApp2

mkTyBind

mkCoBind

varToCoreExpr

varsToCoreExprs

isId

cmpAltCon

cmpAlt

ltAlt

## Simple `Expr` access functions and predicates

bindersOf

bindersOfBinds

rhssOfBind

rhssOfAlts

collectBinders

collectTyBinders

collectValBinders

collectTyAndValBinders

collectArgs

collectArgsTicks

flattenBinds

isValArg

isTypeArg

isTyCoArg

valArgCount

valBndrCount

isRuntimeArg

isRuntimeVar

tickishCounts

tickishScoped

tickishScopesLike

tickishFloatable

tickishCanSplit

mkNoCount

mkNoScope

tickishIsCode

tickishPlace

tickishContains

# Unfolding data types

data Unfolding

data UnfoldingGuidance

data UnfoldingSource

## Constructing `Unfolding`s

noUnfolding

evaldUnfolding

mkOtherCon

unSaturatedOk

needSaturated

boringCxtOk

boringCxtNotOk

## Predicates and deconstruction on `Unfolding`

unfoldingTemplate

expandUnfolding_maybe

maybeUnfoldingTemplate

otherCons

isValueUnfolding

isEvaldUnfolding

isCheapUnfolding

isExpandableUnfolding

isConLikeUnfolding

isCompulsoryUnfolding

isStableUnfolding

hasStableCoreUnfolding_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

collectAnnArgsTicks

## Operations on annotations

deAnnotate

deAnnotate'

deAnnAlt

collectAnnBndrs

# Core rule data types

data CoreRule

type RuleName

type RuleFun

type IdUnfoldingFun

type InScopeEnv

## Operations on `CoreRule`s

seqRules

ruleArity

ruleName

ruleIdName

ruleActivation

setRuleIdName

isBuiltinRule

isLocalRule

isAutoRule

# Core vectorisation declarations data type

data CoreVect