Safe Haskell | None |
---|
- data Ghc a
- runGhc :: Maybe FilePath -> Ghc a -> IO a
- data GhcT m a
- runGhcT :: (Functor m, MonadCatchIO m) => Maybe FilePath -> GhcT m a -> m a
- class (Functor m, MonadIO m, ExceptionMonad m) => GhcMonad m where
- getSession :: m HscEnv
- setSession :: HscEnv -> m ()
- module Control.Monad.Trans
Documentation
MonadTrans GhcT | |
Monad m => Monad (GhcT m) | |
Functor m => Functor (GhcT m) | |
MonadCatchIO m => MonadCatchIO (GhcT m) | |
(Functor m, MonadCatchIO m) => GhcMonad (GhcT m) | |
MonadIO m => MonadIO (GhcT m) | |
MonadCatchIO m => ExceptionMonad (GhcT m) | |
MonadIO m => MonadIO (GhcT m) |
class (Functor m, MonadIO m, ExceptionMonad m) => GhcMonad m where
A monad that has all the features needed by GHC API calls.
In short, a GHC monad
- allows embedding of IO actions,
- can log warnings,
- allows handling of (extensible) exceptions, and
- maintains a current session.
If you do not use Ghc
or GhcT
, make sure to call initGhcMonad
before any call to the GHC API functions can occur.
getSession :: m HscEnv
setSession :: HscEnv -> m ()
module Control.Monad.Trans