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