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

In/Out type synonyms

type InId

type InBind

type InExpr

type InAlt

type InArg

type InType

type InKind

type InBndr

type InVar

type InCoercion

type InTyVar

type InCoVar

type OutId

type OutBind

type OutExpr

type OutAlt

type OutArg

type OutType

type OutKind

type OutBndr

type OutVar

type OutCoercion

type OutTyVar

type OutCoVar

Expr construction

mkLet

mkLets

mkLams

mkApps

mkTyApps

mkCoApps

mkVarApps

mkTyArg

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

collectTyAndValBinders

collectNBinders

collectArgs

collectArgsTicks

flattenBinds

exprToType

exprToCoercion_maybe

applyTypeToArg

isValArg

isTypeArg

isTyCoArg

valArgCount

valBndrCount

isRuntimeArg

isRuntimeVar

Tick-related functions

tickishCounts

tickishScoped

tickishScopesLike

tickishFloatable

tickishCanSplit

mkNoCount

mkNoScope

tickishIsCode

tickishPlace

tickishContains

Unfolding data types

data Unfolding

data UnfoldingGuidance

data UnfoldingSource

Constructing Unfoldings

noUnfolding

bootUnfolding

evaldUnfolding

mkOtherCon

unSaturatedOk

needSaturated

boringCxtOk

boringCxtNotOk

Predicates and deconstruction on Unfolding

unfoldingTemplate

expandUnfolding_maybe

maybeUnfoldingTemplate

otherCons

isValueUnfolding

isEvaldUnfolding

isCheapUnfolding

isExpandableUnfolding

isConLikeUnfolding

isCompulsoryUnfolding

isStableUnfolding

isFragileUnfolding

hasSomeUnfolding

isBootUnfolding

canUnfold

neverUnfoldGuidance

isStableSource

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

collectNAnnBndrs

Orphanhood

data IsOrphan

isOrphan

notOrphan

chooseOrphanAnchor

Core rule data types

data CoreRule

type RuleBase

type RuleName

type RuleFun

type IdUnfoldingFun

type InScopeEnv

data RuleEnv

mkRuleEnv

emptyRuleEnv

Operations on CoreRules

ruleArity

ruleName

ruleIdName

ruleActivation

setRuleIdName

isBuiltinRule

isLocalRule

isAutoRule

Core vectorisation declarations data type

data CoreVect