base-4.4.0.0: Basic libraries

Portabilityportable
Stabilityexperimental
Maintainerlibraries@haskell.org

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) 
Generic (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.