hermit-0.5.0.0: Haskell Equational Reasoning Model-to-Implementation Tunnel

Safe HaskellNone
LanguageHaskell2010

HERMIT.Plugin.Types

Documentation

data PluginState Source

Constructors

PluginState 

Fields

ps_cursor :: SAST

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 (Map String Int)

the list of ticked messages

ps_corelint :: Bool

if true, run Core Lint on module after each rewrite

ps_diffonly :: Bool

if true, show diffs rather than pp full code (TODO: move into pretty opts)

ps_failhard :: Bool

if true, abort on *any* failure this should be in a reader

ps_kernel :: ScopedKernel
 
ps_phase :: PhaseInfo
 

newtype PSBox Source

Constructors

PSBox PluginState 

Instances

iokm' :: (MonadIO m, MonadCatch m) => String -> (a -> m b) -> IO (KureM a) -> m b Source

iokm :: (MonadIO m, MonadCatch m) => String -> IO (KureM a) -> m a Source

iokm'' :: (MonadIO m, MonadCatch m) => IO (KureM a) -> m a Source