base-4.3.0.0: 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

 Typeable2 Either Monad (Either e) Functor (Either a) MonadFix (Either e) Applicative (Either e) (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)

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

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.

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.