Agda-2.5.1.1: A dependently typed functional programming language and proof assistant

Safe HaskellNone
LanguageHaskell98

Agda.TypeChecking.Monad.Exception

Description

Basically a copy of the ErrorT monad transformer. It's handy to slap onto TCM and still be a MonadTCM (which isn't possible with ErrorT).

Documentation

newtype ExceptionT err m a Source #

Constructors

ExceptionT 

Fields

Instances

(Error err, MonadError err' m) => MonadError err' (ExceptionT err m) Source # 

Methods

throwError :: err' -> ExceptionT err m a #

catchError :: ExceptionT err m a -> (err' -> ExceptionT err m a) -> ExceptionT err m a #

(Error err, MonadReader r m) => MonadReader r (ExceptionT err m) Source # 

Methods

ask :: ExceptionT err m r #

local :: (r -> r) -> ExceptionT err m a -> ExceptionT err m a #

reader :: (r -> a) -> ExceptionT err m a #

(Error err, MonadState s m) => MonadState s (ExceptionT err m) Source # 

Methods

get :: ExceptionT err m s #

put :: s -> ExceptionT err m () #

state :: (s -> (a, s)) -> ExceptionT err m a #

(Monad m, Error err) => MonadException err (ExceptionT err m) Source # 

Methods

throwException :: err -> ExceptionT err m a Source #

catchException :: ExceptionT err m a -> (err -> ExceptionT err m a) -> ExceptionT err m a Source #

MonadTrans (ExceptionT err) Source # 

Methods

lift :: Monad m => m a -> ExceptionT err m a #

(Monad m, Error err) => Monad (ExceptionT err m) Source # 

Methods

(>>=) :: ExceptionT err m a -> (a -> ExceptionT err m b) -> ExceptionT err m b #

(>>) :: ExceptionT err m a -> ExceptionT err m b -> ExceptionT err m b #

return :: a -> ExceptionT err m a #

fail :: String -> ExceptionT err m a #

Functor f => Functor (ExceptionT err f) Source # 

Methods

fmap :: (a -> b) -> ExceptionT err f a -> ExceptionT err f b #

(<$) :: a -> ExceptionT err f b -> ExceptionT err f a #

(Error err, Applicative m, Monad m) => Applicative (ExceptionT err m) Source # 

Methods

pure :: a -> ExceptionT err m a #

(<*>) :: ExceptionT err m (a -> b) -> ExceptionT err m a -> ExceptionT err m b #

(*>) :: ExceptionT err m a -> ExceptionT err m b -> ExceptionT err m b #

(<*) :: ExceptionT err m a -> ExceptionT err m b -> ExceptionT err m a #

(Error err, MonadIO m) => MonadIO (ExceptionT err m) Source # 

Methods

liftIO :: IO a -> ExceptionT err m a #

(Error err, MonadTCM tcm) => MonadTCM (ExceptionT err tcm) Source # 

Methods

liftTCM :: TCM a -> ExceptionT err tcm a Source #

(HasConstInfo m, Error err) => HasConstInfo (ExceptionT err m) Source # 

class Error err => MonadException err m | m -> err where Source #

Minimal complete definition

throwException, catchException

Methods

throwException :: err -> m a Source #

catchException :: m a -> (err -> m a) -> m a Source #

Instances

(Monad m, MonadException err m) => MonadException err (StateT s m) Source # 

Methods

throwException :: err -> StateT s m a Source #

catchException :: StateT s m a -> (err -> StateT s m a) -> StateT s m a Source #

(Monad m, MonadException err m, Monoid w) => MonadException err (WriterT w m) Source # 

Methods

throwException :: err -> WriterT w m a Source #

catchException :: WriterT w m a -> (err -> WriterT w m a) -> WriterT w m a Source #

(Monad m, Error err) => MonadException err (ExceptionT err m) Source # 

Methods

throwException :: err -> ExceptionT err m a Source #

catchException :: ExceptionT err m a -> (err -> ExceptionT err m a) -> ExceptionT err m a Source #

(Monad m, MonadException err m) => MonadException err (ReaderT * r m) Source # 

Methods

throwException :: err -> ReaderT * r m a Source #

catchException :: ReaderT * r m a -> (err -> ReaderT * r m a) -> ReaderT * r m a Source #