| Copyright | Copyright (C) 2004-2011 John Goerzen |
|---|---|
| License | BSD3 |
| Maintainer | John Goerzen <jgoerzen@complete.org> |
| Stability | provisional |
| Portability | portable |
| Safe Haskell | Safe |
| Language | Haskell98 |
Data.Either.Utils
Description
Utilities for working with the Either data type
Synopsis
- maybeToEither :: MonadError e m => e -> Maybe a -> m a
- forceEither :: Show e => Either e a -> a
- forceEitherMsg :: Show e => String -> Either e a -> a
- eitherToMonadError :: MonadError e m => Either e a -> m a
- fromLeft :: Either a b -> a
- fromRight :: Either a b -> b
- fromEither :: Either a a -> a
Documentation
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 -> a #
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 -> a #
Like forceEither, but can raise a specific message with the error.
eitherToMonadError :: MonadError e m => Either e a -> m a #
Takes an either and transforms it into something of the more generic MonadError class.
fromEither :: Either a a -> a #
Take an Either, and return the value inside it