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.