Safe Haskell | Safe |
---|---|
Language | Haskell98 |
This module provides the proxy transformer equivalent of EitherT
.
- newtype EitherP e p a' a b' b m r = EitherP {
- runEitherP :: p a' a b' b m (Either e r)
- runEitherK :: (q -> EitherP e p a' a b' b m r) -> q -> p a' a b' b m (Either e r)
- left :: Monad (p a' a b' b m) => e -> EitherP e p a' a b' b m r
- right :: Monad (p a' a b' b m) => r -> EitherP e p a' a b' b m r
- throw :: Monad (p a' a b' b m) => e -> EitherP e p a' a b' b m r
- catch :: Monad (p a' a b' b m) => EitherP e p a' a b' b m r -> (e -> EitherP f p a' a b' b m r) -> EitherP f p a' a b' b m r
- handle :: Monad (p a' a b' b m) => (e -> EitherP f p a' a b' b m r) -> EitherP e p a' a b' b m r -> EitherP f p a' a b' b m r
EitherP
newtype EitherP e p a' a b' b m r Source #
The Either
proxy transformer
EitherP | |
|
ProxyTrans (EitherP e) Source # | |
Channel p => Channel (EitherP e p) Source # | |
MonadTrans (p a' a b' b) => MonadTrans (EitherP e p a' a b' b) Source # | |
MFunctor (p a' a b' b) => MFunctor (EitherP e p a' a b' b) Source # | |
Monad (p a' a b' b m) => Monad (EitherP e p a' a b' b m) Source # | |
Monad (p a' a b' b m) => Functor (EitherP e p a' a b' b m) Source # | |
Monad (p a' a b' b m) => Applicative (EitherP e p a' a b' b m) Source # | |
MonadIO (p a' a b' b m) => MonadIO (EitherP e p a' a b' b m) Source # | |
MonadPlus (p a' a b' b m) => Alternative (EitherP e p a' a b' b m) Source # | |
MonadPlus (p a' a b' b m) => MonadPlus (EitherP e p a' a b' b m) Source # | |
runEitherK :: (q -> EitherP e p a' a b' b m r) -> q -> p a' a b' b m (Either e r) Source #
Either operations
left :: Monad (p a' a b' b m) => e -> EitherP e p a' a b' b m r Source #
Abort the computation and return a Left
result
Symmetric monad
EitherP
forms a second symmetric monad over the left type variable.
These two functions obey the monad laws:
catch m throw = m catch (throw e) f = f e catch (catch m f) g = catch m (\e -> catch (f e) g)