monad-abort-fd-0.5: A better error monad transformer

Safe HaskellNone
LanguageHaskell98

Control.Monad.Abort

Documentation

class (Applicative μ, Monad μ) => MonadAbort e μ | μ -> e where Source #

Minimal complete definition

abort

Methods

abort :: e -> μ α Source #

Instances

MonadAbort SomeException IO Source # 

Methods

abort :: SomeException -> IO α Source #

MonadAbort e μ => MonadAbort e (ListT μ) Source # 

Methods

abort :: e -> ListT μ α Source #

MonadAbort e μ => MonadAbort e (MaybeT μ) Source # 

Methods

abort :: e -> MaybeT μ α Source #

Monad μ => MonadAbort e (ExceptT e μ) Source # 

Methods

abort :: e -> ExceptT e μ α Source #

(Monad μ, Error e) => MonadAbort e (ErrorT e μ) Source # 

Methods

abort :: e -> ErrorT e μ α Source #

(MonadAbort e μ, Monoid w) => MonadAbort e (WriterT w μ) Source # 

Methods

abort :: e -> WriterT w μ α Source #

(MonadAbort e μ, Monoid w) => MonadAbort e (WriterT w μ) Source # 

Methods

abort :: e -> WriterT w μ α Source #

MonadAbort e μ => MonadAbort e (StateT s μ) Source # 

Methods

abort :: e -> StateT s μ α Source #

MonadAbort e μ => MonadAbort e (StateT s μ) Source # 

Methods

abort :: e -> StateT s μ α Source #

MonadAbort e μ => MonadAbort e (IdentityT * μ) Source # 

Methods

abort :: e -> IdentityT * μ α Source #

(Functor μ, Monad μ) => MonadAbort e (AbortT e μ) Source # 

Methods

abort :: e -> AbortT e μ α Source #

MonadAbort e μ => MonadAbort e (ReaderT * r μ) Source # 

Methods

abort :: e -> ReaderT * r μ α Source #

MonadAbort e μ => MonadAbort e (ContT * r μ) Source # 

Methods

abort :: e -> ContT * r μ α Source #

(MonadAbort e μ, Monoid w) => MonadAbort e (RWST r w s μ) Source # 

Methods

abort :: e -> RWST r w s μ α Source #

(MonadAbort e μ, Monoid w) => MonadAbort e (RWST r w s μ) Source # 

Methods

abort :: e -> RWST r w s μ α Source #

class MonadAbort e μ => MonadRecover e μ | μ -> e where Source #

Minimal complete definition

recover

Methods

recover :: μ α -> (e -> μ α) -> μ α Source #

evaluate :: μ α -> μ (Either e α) Source #

Instances

MonadRecover SomeException IO Source # 

Methods

recover :: IO α -> (SomeException -> IO α) -> IO α Source #

evaluate :: IO α -> IO (Either SomeException α) Source #

MonadRecover e μ => MonadRecover e (ListT μ) Source # 

Methods

recover :: ListT μ α -> (e -> ListT μ α) -> ListT μ α Source #

evaluate :: ListT μ α -> ListT μ (Either e α) Source #

MonadRecover e μ => MonadRecover e (MaybeT μ) Source # 

Methods

recover :: MaybeT μ α -> (e -> MaybeT μ α) -> MaybeT μ α Source #

evaluate :: MaybeT μ α -> MaybeT μ (Either e α) Source #

Monad μ => MonadRecover e (ExceptT e μ) Source # 

Methods

recover :: ExceptT e μ α -> (e -> ExceptT e μ α) -> ExceptT e μ α Source #

evaluate :: ExceptT e μ α -> ExceptT e μ (Either e α) Source #

(Monad μ, Error e) => MonadRecover e (ErrorT e μ) Source # 

Methods

recover :: ErrorT e μ α -> (e -> ErrorT e μ α) -> ErrorT e μ α Source #

evaluate :: ErrorT e μ α -> ErrorT e μ (Either e α) Source #

(MonadRecover e μ, Monoid w) => MonadRecover e (WriterT w μ) Source # 

Methods

recover :: WriterT w μ α -> (e -> WriterT w μ α) -> WriterT w μ α Source #

evaluate :: WriterT w μ α -> WriterT w μ (Either e α) Source #

(MonadRecover e μ, Monoid w) => MonadRecover e (WriterT w μ) Source # 

Methods

recover :: WriterT w μ α -> (e -> WriterT w μ α) -> WriterT w μ α Source #

evaluate :: WriterT w μ α -> WriterT w μ (Either e α) Source #

MonadRecover e μ => MonadRecover e (StateT s μ) Source # 

Methods

recover :: StateT s μ α -> (e -> StateT s μ α) -> StateT s μ α Source #

evaluate :: StateT s μ α -> StateT s μ (Either e α) Source #

MonadRecover e μ => MonadRecover e (StateT s μ) Source # 

Methods

recover :: StateT s μ α -> (e -> StateT s μ α) -> StateT s μ α Source #

evaluate :: StateT s μ α -> StateT s μ (Either e α) Source #

MonadRecover e μ => MonadRecover e (IdentityT * μ) Source # 

Methods

recover :: IdentityT * μ α -> (e -> IdentityT * μ α) -> IdentityT * μ α Source #

evaluate :: IdentityT * μ α -> IdentityT * μ (Either e α) Source #

(Functor μ, Monad μ) => MonadRecover e (AbortT e μ) Source # 

Methods

recover :: AbortT e μ α -> (e -> AbortT e μ α) -> AbortT e μ α Source #

evaluate :: AbortT e μ α -> AbortT e μ (Either e α) Source #

MonadRecover e μ => MonadRecover e (ReaderT * r μ) Source # 

Methods

recover :: ReaderT * r μ α -> (e -> ReaderT * r μ α) -> ReaderT * r μ α Source #

evaluate :: ReaderT * r μ α -> ReaderT * r μ (Either e α) Source #

(MonadRecover e μ, Monoid w) => MonadRecover e (RWST r w s μ) Source # 

Methods

recover :: RWST r w s μ α -> (e -> RWST r w s μ α) -> RWST r w s μ α Source #

evaluate :: RWST r w s μ α -> RWST r w s μ (Either e α) Source #

(MonadRecover e μ, Monoid w) => MonadRecover e (RWST r w s μ) Source # 

Methods

recover :: RWST r w s μ α -> (e -> RWST r w s μ α) -> RWST r w s μ α Source #

evaluate :: RWST r w s μ α -> RWST r w s μ (Either e α) Source #

onError :: MonadRecover e μ => μ α -> (e -> μ β) -> μ α Source #

onError_ :: MonadRecover e μ => μ α -> μ β -> μ α Source #

type Abort e α = AbortT e Identity α #

runAbort :: Abort e α -> Either e α #

newtype AbortT e μ α :: * -> (* -> *) -> * -> * #

Constructors

AbortT 

Fields

Instances

MonadBase η μ => MonadBase η (AbortT e μ) 

Methods

liftBase :: η α -> AbortT e μ α #

MonadBaseControl η μ => MonadBaseControl η (AbortT e μ) 

Associated Types

type StM (AbortT e μ :: * -> *) a :: * #

Methods

liftBaseWith :: (RunInBase (AbortT e μ) η -> η a) -> AbortT e μ a #

restoreM :: StM (AbortT e μ) a -> AbortT e μ a #

(Functor μ, Monad μ) => MonadRecover e (AbortT e μ) Source # 

Methods

recover :: AbortT e μ α -> (e -> AbortT e μ α) -> AbortT e μ α Source #

evaluate :: AbortT e μ α -> AbortT e μ (Either e α) Source #

(Functor μ, Monad μ) => MonadAbort e (AbortT e μ) Source # 

Methods

abort :: e -> AbortT e μ α Source #

MonadMask m μ => MonadMask m (AbortT e μ) Source # 

Methods

defMaskingState :: Proxy (* -> *) (AbortT e μ) -> m Source #

getMaskingState :: AbortT e μ m Source #

setMaskingState :: m -> AbortT e μ α -> AbortT e μ α Source #

MonadFinish f μ => MonadFinish f (AbortT e μ) Source # 

Methods

finish :: f -> AbortT e μ α Source #

MonadTrans (AbortT e) 

Methods

lift :: Monad m => m a -> AbortT e m a #

MonadTransControl (AbortT e) 

Associated Types

type StT (AbortT e :: (* -> *) -> * -> *) a :: * #

Methods

liftWith :: Monad m => (Run (AbortT e) -> m a) -> AbortT e m a #

restoreT :: Monad m => m (StT (AbortT e) a) -> AbortT e m a #

BindTrans (AbortT e) 

Methods

liftB :: Bind b => b a -> AbortT e b a #

Monad μ => Monad (AbortT e μ) 

Methods

(>>=) :: AbortT e μ a -> (a -> AbortT e μ b) -> AbortT e μ b #

(>>) :: AbortT e μ a -> AbortT e μ b -> AbortT e μ b #

return :: a -> AbortT e μ a #

fail :: String -> AbortT e μ a #

Functor μ => Functor (AbortT e μ) 

Methods

fmap :: (a -> b) -> AbortT e μ a -> AbortT e μ b #

(<$) :: a -> AbortT e μ b -> AbortT e μ a #

MonadFix μ => MonadFix (AbortT e μ) 

Methods

mfix :: (a -> AbortT e μ a) -> AbortT e μ a #

(Functor μ, Monad μ) => Applicative (AbortT e μ) 

Methods

pure :: a -> AbortT e μ a #

(<*>) :: AbortT e μ (a -> b) -> AbortT e μ a -> AbortT e μ b #

(*>) :: AbortT e μ a -> AbortT e μ b -> AbortT e μ b #

(<*) :: AbortT e μ a -> AbortT e μ b -> AbortT e μ a #

MonadIO μ => MonadIO (AbortT e μ) 

Methods

liftIO :: IO a -> AbortT e μ a #

(Functor μ, Monad μ, Default e) => Alternative (AbortT e μ) 

Methods

empty :: AbortT e μ a #

(<|>) :: AbortT e μ a -> AbortT e μ a -> AbortT e μ a #

some :: AbortT e μ a -> AbortT e μ [a] #

many :: AbortT e μ a -> AbortT e μ [a] #

(Monad μ, Default e) => MonadPlus (AbortT e μ) 

Methods

mzero :: AbortT e μ a #

mplus :: AbortT e μ a -> AbortT e μ a -> AbortT e μ a #

Monad μ => Pointed (AbortT e μ) 

Methods

point :: a -> AbortT e μ a #

(Functor μ, Monad μ, Default e) => Plus (AbortT e μ) 

Methods

zero :: AbortT e μ a #

(Functor μ, Monad μ) => Alt (AbortT e μ) 

Methods

(<!>) :: AbortT e μ a -> AbortT e μ a -> AbortT e μ a #

some :: Applicative (AbortT e μ) => AbortT e μ a -> AbortT e μ [a] #

many :: Applicative (AbortT e μ) => AbortT e μ a -> AbortT e μ [a] #

(Functor μ, Monad μ) => Apply (AbortT e μ) 

Methods

(<.>) :: AbortT e μ (a -> b) -> AbortT e μ a -> AbortT e μ b #

(.>) :: AbortT e μ a -> AbortT e μ b -> AbortT e μ b #

(<.) :: AbortT e μ a -> AbortT e μ b -> AbortT e μ a #

(Functor μ, Monad μ) => Bind (AbortT e μ) 

Methods

(>>-) :: AbortT e μ a -> (a -> AbortT e μ b) -> AbortT e μ b #

join :: AbortT e μ (AbortT e μ a) -> AbortT e μ a #

MonadFinally μ => MonadFinally (AbortT e μ) Source # 

Methods

finally' :: AbortT e μ α -> (Maybe α -> AbortT e μ β) -> AbortT e μ (α, β) Source #

finally :: AbortT e μ α -> AbortT e μ β -> AbortT e μ α Source #

type StT (AbortT e) α 
type StT (AbortT e) α = Either e α
type StM (AbortT e μ) α 
type StM (AbortT e μ) α = ComposeSt (AbortT e) μ α