Portability | portable |
---|---|

Stability | experimental |

Maintainer | Edward Kmett <ekmett@gmail.com> |

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

# Documentation

data Either a b

The `Either`

type represents values with two possibilities: a value of
type

is either `Either`

a b

or `Left`

a

.
`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").

Typeable2 Either | |

Bifunctor Either | |

Coassociative Either | |

Associative Either | |

Symmetric Either | |

Braided Either | |

BiZap Either (,) | |

BiZap (,) Either | |

Monad (Either e) | |

Functor (Either a) | |

MonadFix (Either e) | |

Applicative (Either e) | |

Pointed (Either a) | |

Cozip (Either c) | |

Monoid a => Zip (Either a) | |

(Eq a, Eq b) => Eq (Either a b) | |

(Ord a, Ord b) => Ord (Either a b) | |

(Read a, Read b) => Read (Either a b) | |

(Show a, Show b) => Show (Either a b) | |

Representable (EitherF a b) (Either a b) | |

(Copointed f, Copointed g) => Copointed (BifunctorF Either f g) | |

Functor f => PPointed (BiffB Either Identity f) | |

Functor f => PApplicative (BiffB Either Identity f) | |

Functor f => PMonad (BiffB Either Identity f) |