| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Control.Monad.Ghc
Synopsis
- data Ghc a
- runGhc :: Maybe FilePath -> Ghc a -> IO a
- data GhcT m a
- runGhcT :: (Functor m, MonadIO m, MonadCatch m, MonadMask m) => Maybe FilePath -> GhcT m a -> m a
- class (Functor m, MonadIO m, ExceptionMonad m, HasDynFlags m) => GhcMonad (m :: Type -> Type) where
- getSession :: m HscEnv
- setSession :: HscEnv -> m ()
- module Control.Monad.Trans
- module Control.Monad.Trans
Documentation
Instances
| Monad Ghc Source # | |
| Functor Ghc Source # | |
| Applicative Ghc Source # | |
| MonadIO Ghc Source # | |
| MonadThrow Ghc Source # | |
| MonadCatch Ghc Source # | |
| MonadMask Ghc Source # | |
| GhcMonad Ghc Source # | |
Defined in Control.Monad.Ghc | |
| HasDynFlags Ghc Source # | |
Defined in Control.Monad.Ghc Methods | |
| ExceptionMonad Ghc Source # | |
Instances
| MonadTrans GhcT Source # | |
| Monad m => Monad (GhcT m) Source # | |
| Functor m => Functor (GhcT m) Source # | |
| (Functor m, Monad m) => Applicative (GhcT m) Source # | |
| MonadIO m => MonadIO (GhcT m) Source # | |
| MonadCatch m => MonadThrow (GhcT m) Source # | |
| (MonadIO m, MonadCatch m, MonadMask m) => MonadCatch (GhcT m) Source # | |
| (MonadIO m, MonadMask m) => MonadMask (GhcT m) Source # | |
Defined in Control.Monad.Ghc | |
| (Functor m, MonadIO m, MonadCatch m, MonadMask m) => GhcMonad (GhcT m) Source # | |
Defined in Control.Monad.Ghc | |
| MonadIO m => HasDynFlags (GhcT m) Source # | |
Defined in Control.Monad.Ghc Methods getDynFlags :: GhcT m DynFlags Source # | |
| (MonadIO m, MonadCatch m, MonadMask m) => ExceptionMonad (GhcT m) Source # | |
Defined in Control.Monad.Ghc | |
runGhcT :: (Functor m, MonadIO m, MonadCatch m, MonadMask m) => Maybe FilePath -> GhcT m a -> m a Source #
class (Functor m, MonadIO m, ExceptionMonad m, HasDynFlags m) => GhcMonad (m :: Type -> Type) where Source #
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.
Instances
| GhcMonad Ghc | |
| GhcMonad Ghc Source # | |
Defined in Control.Monad.Ghc | |
| ExceptionMonad m => GhcMonad (GhcT m) | |
| (Functor m, MonadIO m, MonadCatch m, MonadMask m) => GhcMonad (GhcT m) Source # | |
Defined in Control.Monad.Ghc | |
module Control.Monad.Trans
module Control.Monad.Trans