Compiler.Hoopl

data O

data C

data Block n e x

type Body n

data Body' block n

type Graph

data Graph' block n e x

data MaybeO ex t

data MaybeC ex t

data Shape ex

type family IndexedCO ex a b :: *

class NonLocal thing

emptyBody

addBlock

bodyList

mapGraph

mapMaybeO

mapMaybeC

mapBlock

data AGraph n e x

graphOfAGraph

aGraphOfGraph

(<*>)

(|*><*|)

catGraphs

addEntrySeq

addExitSeq

addBlocks

unionBlocks

emptyGraph

emptyClosedGraph

withFresh

mkFirst

mkMiddle

mkMiddles

mkLast

mkBranch

mkLabel

mkWhileDo

class IfThenElseable x

mkEntry

mkExit

class HooplNode n

firstXfer

distributeXfer

distributeFact

distributeFactBwd

successorFacts

joinFacts

joinOutFacts

joinMaps

foldGraphNodes

foldBlockNodesF

foldBlockNodesB

foldBlockNodesF3

foldBlockNodesB3

tfFoldBlock

data ScottBlock n a

scottFoldBlock

fbnf3

blockToNodeList

blockOfNodeList

blockToNodeList'

blockToNodeList''

blockToNodeList'''

analyzeAndRewriteFwdBody

analyzeAndRewriteBwdBody

analyzeAndRewriteFwdOx

analyzeAndRewriteBwdOx

noEntries

data BlockResult n x

lookupBlock

class IsSet set

setInsertList

setDeleteList

setUnions

class IsMap map

mapInsertList

mapDeleteList

mapUnions

class CheckpointMonad m

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

getFTransfer3

Respecting Fuel

data FwdRewrite m n f

mkFRewrite

mkFRewrite3

getFRewrite3

noFwdRewrite

wrapFR

wrapFR2

data BwdPass m n f

data BwdTransfer n f

mkBTransfer

mkBTransfer3

getBTransfer3

wrapBR

wrapBR2

data BwdRewrite m n f

mkBRewrite

mkBRewrite3

getBRewrite3

noBwdRewrite

analyzeAndRewriteFwd

analyzeAndRewriteBwd

data Label

freshLabel

data LabelSet

data LabelMap v

type FactBase f

noFacts

lookupFact

uniqueToLbl

lblToUnique

data Pointed t b a

addPoints

addPoints'

addTop

addTop'

liftJoinTop

extendJoinDomain

type WithTop a

type WithBot a

type WithTopAndBot a

thenFwdRw

deepFwdRw3

deepFwdRw

iterFwdRw

thenBwdRw

deepBwdRw3

deepBwdRw

iterBwdRw

pairFwd

pairBwd

pairLattice

type Fuel

infiniteFuel

fuelRemaining

withFuel

class FuelMonad m

class FuelMonadT fm

data CheckingFuelMonad m a

data InfiniteFuelMonad m a

type SimpleFuelMonad

data Unique

intToUnique

data UniqueSet

data UniqueMap v

class UniqueMonad m

data SimpleUniqueMonad a

runSimpleUniqueMonad

data UniqueMonadT m a

runUniqueMonadT

uniqueToInt

gUnitOO

gUnitOC

gUnitCO

gUnitCC

catGraphNodeOC

catGraphNodeOO

catNodeCOGraph

catNodeOOGraph

graphMapBlocks

blockMapNodes

blockMapNodes3

blockGraph

postorder_dfs

postorder_dfs_from

postorder_dfs_from_except

preorder_dfs

preorder_dfs_from_except

labelsDefined

labelsUsed

externalEntryLabels

class LabelsPtr l

type TraceFn

debugFwdJoins

debugBwdJoins

debugFwdTransfers

debugBwdTransfers

showGraph

showFactBase