Safe Haskell | None |
---|
- type HermitPass = PhaseInfo -> [CommandLineOption] -> ModGuts -> CoreM ModGuts
- hermitPlugin :: HermitPass -> Plugin
- data CorePass
- = FloatInwards
- | LiberateCase
- | PrintCore
- | StaticArgs
- | Strictness
- | WorkerWrapper
- | Specialising
- | SpecConstr
- | CSE
- | Vectorisation
- | Desugar
- | DesugarOpt
- | Tidy
- | Prep
- | Simplify
- | FloatOutwards
- | RuleCheck
- | Passes
- | PluginPass String
- | NoOp
- | Unknown
- getCorePass :: CoreToDo -> CorePass
- ghcPasses :: [(CorePass, CoreToDo)]
- data PhaseInfo = PhaseInfo {
- phaseNum :: Int
- phasesDone :: [CorePass]
- phasesLeft :: [CorePass]
The HERMIT Plugin
type HermitPass = PhaseInfo -> [CommandLineOption] -> ModGuts -> CoreM ModGutsSource
Given a list of CommandLineOption
s, produce the ModGuts
to ModGuts
function required to build a plugin.
hermitPlugin :: HermitPass -> PluginSource
Build a hermit plugin. This mainly handles the per-module options.