Compiler.Hoopl.Internals

Shapes

data O

data C

data MaybeO ex t

data MaybeC ex t

type family IndexedCO ex a b :: *

data Shape ex

Blocks

data Block n e x

Predicates on Blocks

isEmptyBlock

Constructing blocks

emptyBlock

blockCons

blockSnoc

blockJoinHead

blockJoinTail

blockJoin

blockJoinAny

blockAppend

Deconstructing blocks

firstNode

lastNode

endNodes

blockSplitHead

blockSplitTail

blockSplit

blockSplitAny

Modifying blocks

replaceFirstNode

replaceLastNode

Converting to and from lists

blockToList

blockFromList

Maps and folds

mapBlock

mapBlock'

mapBlock3'

foldBlockNodesF

foldBlockNodesF3

foldBlockNodesB

foldBlockNodesB3

Biasing

frontBiasBlock

backBiasBlock

Body

type Body n

type Body' block n

emptyBody

bodyList

addBlock

bodyUnion

Graph

type Graph

data Graph' block n e x

class NonLocal thing

Constructing graphs

bodyGraph

blockGraph

gUnitOO

gUnitOC

gUnitCO

gUnitCC

catGraphNodeOC

catGraphNodeOO

catNodeCOGraph

catNodeOOGraph

Splicing graphs

splice

gSplice

Maps

mapGraph

mapGraphBlocks

Folds

foldGraphNodes

Extracting Labels

labelsDefined

labelsUsed

externalEntryLabels

Depth-first traversals

postorder_dfs

postorder_dfs_from

postorder_dfs_from_except

preorder_dfs

preorder_dfs_from_except

class LabelsPtr l

data Label

freshLabel

data LabelSet

data LabelMap v

type FactBase f

noFacts

lookupFact

uniqueToLbl

lblToUnique

data DataflowLattice a

type JoinFun a

data OldFact a

data NewFact a

type family Fact x f :: *

mkFactBase

data ChangeFlag

changeIf

data FwdPass m n f

data FwdTransfer n f

mkFTransfer

mkFTransfer3

data FwdRewrite m n f

mkFRewrite

mkFRewrite3

noFwdRewrite

wrapFR

wrapFR2

data BwdPass m n f

data BwdTransfer n f

mkBTransfer

mkBTransfer3

wrapBR

wrapBR2

data BwdRewrite m n f

mkBRewrite

mkBRewrite3

noBwdRewrite

analyzeAndRewriteFwd

analyzeAndRewriteBwd

Respecting Fuel