monad-abort-fd-0.7.0.1: A better error monad transformer
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Monad.Finish.Class

Description

Monad type class for short-cicuiting computation.

Synopsis

Documentation

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

Class of monads that support short-circuiting.

Methods

finish :: f -> μ α Source #

Short-circuit the computation with the provided value.

    finish f >>= rest = finish f

Instances

Instances details
MonadFinish f μ => MonadFinish f (ListT μ) Source # 
Instance details

Defined in Control.Monad.Finish.Class

Methods

finish :: f -> ListT μ α Source #

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

Defined in Control.Monad.Finish.Class

Methods

finish :: f -> MaybeT μ α Source #

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

Defined in Control.Monad.Finish.Class

Methods

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

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

Defined in Control.Monad.Finish.Class

Methods

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

MonadFinish f μ => MonadFinish f (IdentityT μ) Source # 
Instance details

Defined in Control.Monad.Finish.Class

Methods

finish :: f -> IdentityT μ α Source #

MonadFinish f μ => MonadFinish f (ReaderT r μ) Source # 
Instance details

Defined in Control.Monad.Finish.Class

Methods

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

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

Defined in Control.Monad.Finish.Class

Methods

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

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

Defined in Control.Monad.Finish.Class

Methods

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

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

Defined in Control.Monad.Finish.Class

Methods

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

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

Defined in Control.Monad.Finish.Class

Methods

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

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

Defined in Control.Monad.Finish.Class

Methods

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

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

Defined in Control.Monad.Finish.Class

Methods

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

MonadFinish f μ => MonadFinish f (ContT r μ) Source # 
Instance details

Defined in Control.Monad.Finish.Class

Methods

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

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

Defined in Control.Monad.Finish.Class

Methods

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

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

Defined in Control.Monad.Finish.Class

Methods

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

Orphan instances

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

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

Methods

throwError :: e -> FinishT f μ a #

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

MonadReader r μ => MonadReader r (FinishT f μ) Source # 
Instance details

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 # 
Instance details

Methods

get :: FinishT f μ s #

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

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

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

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 #

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

Methods

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