MissingH-1.2.1.0: Large utility library

Portabilityportable
Stabilityprovisional
MaintainerJohn Goerzen <jgoerzen@complete.org>
Safe HaskellNone

Data.Either.Utils

Description

Utilities for working with the Either data type

Synopsis

Documentation

maybeToEitherSource

Arguments

:: MonadError e m 
=> e

(Left e) will be returned if the Maybe value is Nothing

-> Maybe a

(Right a) will be returned if this is (Just a)

-> m a 

Converts a Maybe value to an Either value, using the supplied parameter as the Left value if the Maybe is Nothing.

This function can be interpreted as:

maybeToEither :: e -> Maybe a -> Either e a

Its definition is given as it is so that it can be used in the Error and related monads.

forceEither :: Show e => Either e a -> aSource

Pulls a Right value out of an Either value. If the Either value is Left, raises an exception with error.

forceEitherMsg :: Show e => String -> Either e a -> aSource

Like forceEither, but can raise a specific message with the error.

eitherToMonadError :: MonadError e m => Either e a -> m aSource

Takes an either and transforms it into something of the more generic MonadError class.

fromLeft :: Either a b -> aSource

Take a Left to a value, crashes on a Right

fromRight :: Either a b -> bSource

Take a Right to a value, crashes on a Left

fromEither :: Either a a -> aSource

Take an Either, and return the value inside it