-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | An mtl compatible version of the Ghc-Api monads
-- and monad-transformers.
--
-- Provides an mtl compatible version of the GhcT
-- monad-transformer defined in the 'GHC-API' since version 6.10.1.
@package ghc-mtl
@version 1.0.1.0
module Control.Monad.Ghc
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
-- | 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
-- GHC.initGhcMonad before any call to the GHC API functions can
-- occur.
class (Functor m, MonadIO m, WarnLogMonad m, ExceptionMonad m) => GhcMonad m :: (* -> *)
getSession :: GhcMonad m => m HscEnv
setSession :: GhcMonad m => HscEnv -> m ()
instance Functor Ghc
instance Monad Ghc
instance WarnLogMonad Ghc
instance ExceptionMonad Ghc
instance MonadIO Ghc
instance GhcMonad Ghc
instance Functor m => Functor (MTLAdapter m)
instance Monad m => Monad (MTLAdapter m)
instance Functor m => Functor (GhcT m)
instance Monad m => Monad (GhcT m)
instance MonadCatchIO m => ExceptionMonad (MTLAdapter m)
instance MonadIO m => MonadIO (MTLAdapter m)
instance (Functor m, MonadCatchIO m) => GhcMonad (GhcT m)
instance MonadIO m => WarnLogMonad (GhcT m)
instance MonadCatchIO m => ExceptionMonad (GhcT m)
instance MonadCatchIO m => MonadCatchIO (GhcT m)
instance MonadIO m => MonadIO (GhcT m)
instance MonadIO m => MonadIO (GhcT m)
instance MonadTrans GhcT
instance MonadCatchIO Ghc
instance MonadIO Ghc