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

Safe HaskellNone
LanguageHaskell98

Control.Monad.Finish.Class

Contents

Description

Monad type class for short-cicuiting computation.

Synopsis

Documentation

class Monad μ => MonadFinish f μ | μ -> f where Source #

Class of monads that support short-circuiting.

Minimal complete definition

finish

Methods

finish :: f -> μ α Source #

Short-circuit the computation with the provided value.

    finish f >>= rest = finish f

Instances

MonadFinish f μ => MonadFinish f (ListT μ) Source # 

Methods

finish :: f -> ListT μ α Source #

MonadFinish f μ => MonadFinish f (MaybeT μ) Source # 

Methods

finish :: f -> MaybeT μ α Source #

(MonadFinish f μ, Monoid w) => MonadFinish f (WriterT w μ) Source # 

Methods

finish :: f -> WriterT w μ α Source #

(MonadFinish f μ, Monoid w) => MonadFinish f (WriterT w μ) Source # 

Methods

finish :: f -> WriterT w μ α Source #

MonadFinish f μ => MonadFinish f (StateT s μ) Source # 

Methods

finish :: f -> StateT s μ α Source #

MonadFinish f μ => MonadFinish f (StateT s μ) Source # 

Methods

finish :: f -> StateT s μ α Source #

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

Methods

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

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

Methods

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

(MonadFinish f μ, Error e) => MonadFinish f (ErrorT e μ) Source # 

Methods

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

MonadFinish f μ => MonadFinish f (IdentityT * μ) Source # 

Methods

finish :: f -> IdentityT * μ α Source #

Monad μ => MonadFinish f (FinishT f μ) Source # 

Methods

finish :: f -> FinishT f μ α Source #

MonadFinish f μ => MonadFinish f (ReaderT * r μ) Source # 

Methods

finish :: f -> ReaderT * r μ α Source #

MonadFinish f μ => MonadFinish f (ContT * r μ) Source # 

Methods

finish :: f -> ContT * r μ α Source #

(MonadFinish f μ, Monoid w) => MonadFinish f (RWST r w s μ) Source # 

Methods

finish :: f -> RWST r w s μ α Source #

(MonadFinish f μ, Monoid w) => MonadFinish f (RWST r w s μ) Source # 

Methods

finish :: f -> RWST r w s μ α Source #

Orphan instances

MonadRWS r w s μ => MonadRWS r w s (FinishT f μ) Source # 
MonadReader r μ => MonadReader r (FinishT f μ) Source # 

Methods

ask :: FinishT f μ r #

local :: (r -> r) -> FinishT f μ a -> FinishT f μ a #

reader :: (r -> a) -> FinishT f μ a #

MonadState s μ => MonadState s (FinishT f μ) Source # 

Methods

get :: FinishT f μ s #

put :: s -> FinishT f μ () #

state :: (s -> (a, s)) -> FinishT f μ a #

MonadWriter w μ => MonadWriter w (FinishT f μ) Source # 

Methods

writer :: (a, w) -> FinishT f μ a #

tell :: w -> FinishT f μ () #

listen :: FinishT f μ a -> FinishT f μ (a, w) #

pass :: FinishT f μ (a, w -> w) -> FinishT f μ a #

MonadError e μ => MonadError e (FinishT f μ) Source # 

Methods

throwError :: e -> FinishT f μ a #

catchError :: FinishT f μ a -> (e -> FinishT f μ a) -> FinishT f μ a #

MonadCont μ => MonadCont (FinishT f μ) Source # 

Methods

callCC :: ((a -> FinishT f μ b) -> FinishT f μ a) -> FinishT f μ a #