CoreMonad

# Configuration of the core-to-core passes

data CoreToDo

data SimplifierMode

data FloatOutSwitches

getCoreToDo

dumpSimplPhase

# Counting

data SimplCount

doSimplTick

doFreeSimplTick

simplCountN

pprSimplCount

plusSimplCount

zeroSimplCount

isZeroSimplCount

data Tick

# The monad

data CoreM a

runCoreM

## Reading from the monad

getHscEnv

getRuleBase

getModule

getDynFlags

getOrigNameCache

## Writing to the monad

addSimplCount

## Lifting into the monad

liftIO

liftIOWithCount

liftIO1

liftIO2

liftIO3

liftIO4

## Dealing with annotations

getAnnotations

getFirstAnnotations

## Debug output

showPass

endPass

endIteration

dumpIfSet

## Screen output

putMsg

putMsgS

errorMsg

errorMsgS

fatalErrorMsg

fatalErrorMsgS

debugTraceMsg

debugTraceMsgS

dumpIfSet_dyn

# Getting `Name`s

thNameToGhcName