ghc-mtl-1.2.1.0: An mtl compatible version of the Ghc-Api monads and monad-transformers.

Safe HaskellNone
LanguageHaskell98

Control.Monad.Ghc

Documentation

data Ghc a Source #

Instances
Monad Ghc Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

(>>=) :: Ghc a -> (a -> Ghc b) -> Ghc b

(>>) :: Ghc a -> Ghc b -> Ghc b

return :: a -> Ghc a

fail :: String -> Ghc a

Functor Ghc Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

fmap :: (a -> b) -> Ghc a -> Ghc b

(<$) :: a -> Ghc b -> Ghc a

Applicative Ghc Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

pure :: a -> Ghc a

(<*>) :: Ghc (a -> b) -> Ghc a -> Ghc b

liftA2 :: (a -> b -> c) -> Ghc a -> Ghc b -> Ghc c

(*>) :: Ghc a -> Ghc b -> Ghc b

(<*) :: Ghc a -> Ghc b -> Ghc a

MonadIO Ghc Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

liftIO :: IO a -> Ghc a

MonadCatch Ghc Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

catch :: Exception e => Ghc a -> (e -> Ghc a) -> Ghc a

MonadMask Ghc Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

mask :: ((forall a. Ghc a -> Ghc a) -> Ghc b) -> Ghc b

uninterruptibleMask :: ((forall a. Ghc a -> Ghc a) -> Ghc b) -> Ghc b

generalBracket :: Ghc a -> (a -> ExitCase b -> Ghc c) -> (a -> Ghc b) -> Ghc (b, c)

MonadThrow Ghc Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

throwM :: Exception e => e -> Ghc a

ExceptionMonad Ghc Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

gcatch :: Exception e => Ghc a -> (e -> Ghc a) -> Ghc a

gmask :: ((Ghc a -> Ghc a) -> Ghc b) -> Ghc b

gbracket :: Ghc a -> (a -> Ghc b) -> (a -> Ghc c) -> Ghc c

gfinally :: Ghc a -> Ghc b -> Ghc a

GhcMonad Ghc Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

getSession :: Ghc HscEnv #

setSession :: HscEnv -> Ghc () #

HasDynFlags Ghc Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

getDynFlags :: Ghc DynFlags

runGhc :: Maybe FilePath -> Ghc a -> IO a Source #

data GhcT m a Source #

Instances
MonadTrans GhcT Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

lift :: Monad m => m a -> GhcT m a

Monad m => Monad (GhcT m) Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

(>>=) :: GhcT m a -> (a -> GhcT m b) -> GhcT m b

(>>) :: GhcT m a -> GhcT m b -> GhcT m b

return :: a -> GhcT m a

fail :: String -> GhcT m a

Functor m => Functor (GhcT m) Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

fmap :: (a -> b) -> GhcT m a -> GhcT m b

(<$) :: a -> GhcT m b -> GhcT m a

(Functor m, Monad m) => Applicative (GhcT m) Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

pure :: a -> GhcT m a

(<*>) :: GhcT m (a -> b) -> GhcT m a -> GhcT m b

liftA2 :: (a -> b -> c) -> GhcT m a -> GhcT m b -> GhcT m c

(*>) :: GhcT m a -> GhcT m b -> GhcT m b

(<*) :: GhcT m a -> GhcT m b -> GhcT m a

MonadIO m => MonadIO (GhcT m) Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

liftIO :: IO a -> GhcT m a

(MonadIO m, MonadCatch m, MonadMask m) => MonadCatch (GhcT m) Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

catch :: Exception e => GhcT m a -> (e -> GhcT m a) -> GhcT m a

(MonadIO m, MonadMask m) => MonadMask (GhcT m) Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

mask :: ((forall a. GhcT m a -> GhcT m a) -> GhcT m b) -> GhcT m b

uninterruptibleMask :: ((forall a. GhcT m a -> GhcT m a) -> GhcT m b) -> GhcT m b

generalBracket :: GhcT m a -> (a -> ExitCase b -> GhcT m c) -> (a -> GhcT m b) -> GhcT m (b, c)

MonadCatch m => MonadThrow (GhcT m) Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

throwM :: Exception e => e -> GhcT m a

(MonadIO m, MonadCatch m, MonadMask m) => ExceptionMonad (GhcT m) Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

gcatch :: Exception e => GhcT m a -> (e -> GhcT m a) -> GhcT m a

gmask :: ((GhcT m a -> GhcT m a) -> GhcT m b) -> GhcT m b

gbracket :: GhcT m a -> (a -> GhcT m b) -> (a -> GhcT m c) -> GhcT m c

gfinally :: GhcT m a -> GhcT m b -> GhcT m a

(Functor m, MonadIO m, MonadCatch m, MonadMask m) => GhcMonad (GhcT m) Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

getSession :: GhcT m HscEnv #

setSession :: HscEnv -> GhcT m () #

MonadIO m => HasDynFlags (GhcT m) Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

getDynFlags :: GhcT m DynFlags

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 #

Methods

getSession :: m HscEnv #

setSession :: HscEnv -> m () #

Instances
GhcMonad Ghc 
Instance details

Defined in GhcMonad

Methods

getSession :: Ghc HscEnv #

setSession :: HscEnv -> Ghc () #

GhcMonad Ghc Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

getSession :: Ghc HscEnv #

setSession :: HscEnv -> Ghc () #

ExceptionMonad m => GhcMonad (GhcT m) 
Instance details

Defined in GhcMonad

Methods

getSession :: GhcT m HscEnv #

setSession :: HscEnv -> GhcT m () #

(Functor m, MonadIO m, MonadCatch m, MonadMask m) => GhcMonad (GhcT m) Source # 
Instance details

Defined in Control.Monad.Ghc

Methods

getSession :: GhcT m HscEnv #

setSession :: HscEnv -> GhcT m () #