-
Notifications
You must be signed in to change notification settings - Fork 8
Types in HERMIT
Andy Gill edited this page Jul 17, 2015
·
6 revisions
The layers in HERMIT are
- Shell
- Plugin (PluginState, PluginReader):
- Kernel: raw rewrites or queries on Core; keeps a dictionary of all rewrite results.
data PluginState = PluginState
{ ps_cursor :: AST -- ^ the current AST
, ps_pretty :: PrettyPrinter -- ^ which pretty printer to use
, ps_render :: Handle -> PrettyOptions -> Either String DocH -> IO () -- ^ the way of outputing to the screen
, ps_tick :: TVar (M.Map String Int) -- ^ the list of ticked messages
, ps_corelint :: Bool -- ^ if true, run Core Lint on module after each rewrite
}
data PluginReader = PluginReader
{ pr_kernel :: Kernel
, pr_pass :: PassInfo
}