CoreMonad

# Configuration of the core-to-core passes

data CoreToDo

runWhen

runMaybe

data SimplifierMode

data FloatOutSwitches

dumpSimplPhase

pprPassDetails

# Plugins

type PluginPass

data Plugin

type CommandLineOption

defaultPlugin

bindsOnlyPass

# Counting

data SimplCount

doSimplTick

doFreeSimplTick

simplCountN

pprSimplCount

plusSimplCount

zeroSimplCount

isZeroSimplCount

hasDetailedCounts

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

## Global initialization

reinitializeGlobals

## Dealing with annotations

getAnnotations

getFirstAnnotations

## Debug output

showPass

endPass

dumpPassResult

lintPassResult

dumpIfSet

## Screen output

putMsg

putMsgS

errorMsg

errorMsgS

fatalErrorMsg

fatalErrorMsgS

debugTraceMsg

debugTraceMsgS

dumpIfSet_dyn

# Getting `Name`s

thNameToGhcName