Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data AST
- firstAST :: AST
- data ASTMap
- data Kernel
- data KernelEnv = KernelEnv {
- kEnvChan :: DebugMessage -> HermitM ()
- hermitKernel :: IORef (Maybe (AST, ASTMap)) -> String -> (Kernel -> AST -> IO ()) -> ModGuts -> CoreM ModGuts
- data CommitMsg
- resumeK :: Kernel -> MonadIO m => AST -> m ()
- abortK :: Kernel -> MonadIO m => m ()
- applyK :: Kernel -> (MonadIO m, MonadCatch m) => RewriteH ModGuts -> CommitMsg -> KernelEnv -> AST -> m AST
- queryK :: Kernel -> (MonadIO m, MonadCatch m) => TransformH ModGuts a -> CommitMsg -> KernelEnv -> AST -> m (AST, a)
- deleteK :: Kernel -> MonadIO m => AST -> m ()
- listK :: Kernel -> MonadIO m => m [(AST, Maybe String, Maybe AST)]
- tellK :: Kernel -> (MonadIO m, MonadCatch m) => String -> AST -> m AST
The HERMIT Kernel
A handle for a specific version of the ModGuts
.
Kernel Interface
applyK :: Kernel -> (MonadIO m, MonadCatch m) => RewriteH ModGuts -> CommitMsg -> KernelEnv -> AST -> m AST Source
queryK :: Kernel -> (MonadIO m, MonadCatch m) => TransformH ModGuts a -> CommitMsg -> KernelEnv -> AST -> m (AST, a) Source
Apply a TransformH
to the AST
, return the resulting value, and potentially a new AST
.
deleteK :: Kernel -> MonadIO m => AST -> m () Source
Delete the internal record of the specified AST
.