category-extras-0.51.3: Various modules and constructs inspired by category theory

Portabilityportable
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>

Control.Monad.Either

Description

Incompatible with Control.Monad.Error, but removes the Error restriction that prevents a natural encoding of Apomorphisms. This module is therefore incompatible with Control.Monad.Error

Synopsis

Documentation

data Either a b

The Either type represents values with two possibilities: a value of type Either a b is either Left a or Right b.

The Either type is sometimes used to represent a value which is either correct or an error; by convention, the Left constructor is used to hold an error value and the Right constructor is used to hold a correct value (mnemonic: "right" also means "correct").

Constructors

Left a 
Right b 

newtype EitherT a m b Source

Constructors

EitherT 

Fields

runEitherT :: m (Either a b)
 

Instances

Monad m => Monad (EitherT a m) 
Functor f => Functor (EitherT a f) 
MonadFix m => MonadFix (EitherT a m) 
Pointed f => Pointed (EitherT a f)