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

Control.Monad.Finish

Documentation

class Monad μ => MonadFinish f μ | μ -> f whereSource

Methods

finish :: f -> μ αSource

Instances

MonadFinish f μ => MonadFinish f (ListT μ) 
MonadFinish f μ => MonadFinish f (MaybeT μ) 
MonadFinish f μ => MonadFinish f (IdentityT μ) 
(MonadFinish f μ, Monoid w) => MonadFinish f (WriterT w μ) 
(MonadFinish f μ, Monoid w) => MonadFinish f (WriterT w μ) 
MonadFinish f μ => MonadFinish f (StateT s μ) 
MonadFinish f μ => MonadFinish f (StateT s μ) 
MonadFinish f μ => MonadFinish f (ReaderT r μ) 
MonadFinish f μ => MonadFinish f (AbortT e μ) 
(MonadFinish f μ, Error e) => MonadFinish f (ErrorT e μ) 
MonadFinish f μ => MonadFinish f (ContT r μ) 
Monad μ => MonadFinish f (FinishT f μ) 
(MonadFinish f μ, Monoid w) => MonadFinish f (RWST r w s μ) 
(MonadFinish f μ, Monoid w) => MonadFinish f (RWST r w s μ) 

type Finish f α = FinishT f Identity α

runFinish :: Finish f α -> Either f α

runFinish' :: Finish α α -> α

newtype FinishT f μ α

Constructors

FinishT 

Fields

runFinishT :: μ (Either f α)
 

Instances

MonadRWS r w s μ => MonadRWS r w s (FinishT f μ) 
MonadBase η μ => MonadBase η (FinishT f μ) 
MonadBaseControl η μ => MonadBaseControl η (FinishT e μ) 
MonadError e μ => MonadError e (FinishT f μ) 
MonadReader r μ => MonadReader r (FinishT f μ) 
MonadState s μ => MonadState s (FinishT f μ) 
MonadWriter w μ => MonadWriter w (FinishT f μ) 
MonadRecover e μ => MonadRecover e (FinishT f μ) 
MonadAbort e μ => MonadAbort e (FinishT f μ) 
MonadMask m μ => MonadMask m (FinishT β μ) 
Monad μ => MonadFinish f (FinishT f μ) 
MonadTrans (FinishT f) 
MonadTransControl (FinishT f) 
BindTrans (FinishT f) 
Monad μ => Monad (FinishT f μ) 
Functor μ => Functor (FinishT f μ) 
MonadFix μ => MonadFix (FinishT f μ) 
(Functor μ, Monad μ) => Applicative (FinishT f μ) 
MonadIO μ => MonadIO (FinishT f μ) 
MonadCont μ => MonadCont (FinishT f μ) 
Monad μ => Pointed (FinishT f μ) 
(Functor μ, Monad μ) => Apply (FinishT f μ) 
(Functor μ, Monad μ) => Bind (FinishT f μ) 
MonadFinally μ => MonadFinally (FinishT β μ) 

runFinishT' :: Monad μ => FinishT α μ α -> μ α