| Safe Haskell | Safe |
|---|---|
| Language | Haskell98 |
Control.Proxy.Trans.Either
Description
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
Constructors
| EitherP | |
Fields
| |
Instances
| 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)