fast-tags-1.4.1: Fast incremental vi and emacs tags.

Safe HaskellSafe
LanguageHaskell98

Control.Monad.EitherK

Description

A continuation-based error monad.

Documentation

data EitherKT e m a Source #

Instances

MonadState s m => MonadState s (EitherKT e m) Source # 

Methods

get :: EitherKT e m s #

put :: s -> EitherKT e m () #

state :: (s -> (a, s)) -> EitherKT e m a #

MonadError e (EitherKT e m) Source # 

Methods

throwError :: e -> EitherKT e m a #

catchError :: EitherKT e m a -> (e -> EitherKT e m a) -> EitherKT e m a #

Monad (EitherKT e m) Source # 

Methods

(>>=) :: EitherKT e m a -> (a -> EitherKT e m b) -> EitherKT e m b #

(>>) :: EitherKT e m a -> EitherKT e m b -> EitherKT e m b #

return :: a -> EitherKT e m a #

fail :: String -> EitherKT e m a #

Functor (EitherKT e m) Source # 

Methods

fmap :: (a -> b) -> EitherKT e m a -> EitherKT e m b #

(<$) :: a -> EitherKT e m b -> EitherKT e m a #

Applicative (EitherKT e m) Source # 

Methods

pure :: a -> EitherKT e m a #

(<*>) :: EitherKT e m (a -> b) -> EitherKT e m a -> EitherKT e m b #

liftA2 :: (a -> b -> c) -> EitherKT e m a -> EitherKT e m b -> EitherKT e m c #

(*>) :: EitherKT e m a -> EitherKT e m b -> EitherKT e m b #

(<*) :: EitherKT e m a -> EitherKT e m b -> EitherKT e m a #

Alternative (EitherKT String m) Source # 

runEitherKT :: EitherKT e m a -> forall r. (e -> m r) -> (a -> m r) -> m r Source #