-- 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.2

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
--   initGhcMonad before any call to the GHC API functions can
--   occur.
class (Functor m, MonadIO m, ExceptionMonad m, HasDynFlags m) => GhcMonad (m :: * -> *)
getSession :: GhcMonad m => m HscEnv
setSession :: GhcMonad m => HscEnv -> m ()
instance Functor Ghc
instance Monad Ghc
instance HasDynFlags 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 (Functor m, MonadCatchIO m) => HasDynFlags (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 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
