base-compat-0.10.4: A compatibility layer for base

Data.Either.Compat

Synopsis

# Documentation

isLeft :: Either a b -> Bool #

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

#### Examples

Expand

Basic usage:

>>> isLeft (Left "foo")
True
>>> isLeft (Right 3)
False


Assuming a Left value signifies some sort of error, we can use isLeft to write a very simple error-reporting function that does absolutely nothing in the case of success, and outputs "ERROR" if any error occurred.

This example shows how isLeft might be used to avoid pattern matching when one does not care about the value contained in the constructor:

>>> import Control.Monad ( when )
>>> let report e = when (isLeft e) $putStrLn "ERROR" >>> report (Right 1) >>> report (Left "parse error") ERROR  Since: base-4.7.0.0 isRight :: Either a b -> Bool # Return True if the given value is a Right-value, False otherwise. #### Examples Expand Basic usage: >>> isRight (Left "foo") False >>> isRight (Right 3) True  Assuming a Left value signifies some sort of error, we can use isRight to write a very simple reporting function that only outputs "SUCCESS" when a computation has succeeded. This example shows how isRight might be used to avoid pattern matching when one does not care about the value contained in the constructor: >>> import Control.Monad ( when ) >>> let report e = when (isRight e)$ putStrLn "SUCCESS"
>>> report (Left "parse error")
>>> report (Right 1)
SUCCESS


Since: base-4.7.0.0

fromLeft :: a -> Either a b -> a #

Return the contents of a Left-value or a default value otherwise.

#### Examples

Expand

Basic usage:

>>> fromLeft 1 (Left 3)
3
>>> fromLeft 1 (Right "foo")
1


Since: base-4.10.0.0

fromRight :: b -> Either a b -> b #

Return the contents of a Right-value or a default value otherwise.

#### Examples

Expand

Basic usage:

>>> fromRight 1 (Right 3)
3
>>> fromRight 1 (Left "foo")
1


Since: base-4.10.0.0