base-4.7.0.2: Basic libraries

Data.Either

Description

The Either type, and associated operations.

Synopsis

Documentation

data Either a b Source

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

Instances

 Monad (Either e) Functor (Either a) MonadFix (Either e) Applicative (Either e) Foldable (Either a) Traversable (Either a) Generic1 (Either a) (Eq a, Eq b) => Eq (Either a b) (Data a, Data b) => Data (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) Generic (Either a b) Typeable (* -> * -> *) Either type Rep1 (Either a) type Rep (Either a b) type (==) (Either k k1) a b

either :: (a -> c) -> (b -> c) -> Either a b -> c Source

Case analysis for the `Either` type. If the value is `Left a`, apply the first function to `a`; if it is `Right b`, apply the second function to `b`.

lefts :: [Either a b] -> [a] Source

Extracts from a list of `Either` all the `Left` elements All the `Left` elements are extracted in order.

rights :: [Either a b] -> [b] Source

Extracts from a list of `Either` all the `Right` elements All the `Right` elements are extracted in order.

isLeft :: Either a b -> Bool Source

Return `True` if the given value is a `Left`-value, `False` otherwise.

Since: 4.7.0.0

isRight :: Either a b -> Bool Source

Return `True` if the given value is a `Right`-value, `False` otherwise.

Since: 4.7.0.0

partitionEithers :: [Either a b] -> ([a], [b]) Source

Partitions a list of `Either` into two lists All the `Left` elements are extracted, in order, to the first component of the output. Similarly the `Right` elements are extracted to the second component of the output.