Copyright | (c) 2012-2015 Leon P Smith |
---|---|
License | BSD3 |
Maintainer | leon@melding-monads.com |
Stability | experimental |
Safe Haskell | Safe |
Language | Haskell98 |
The Ok
type is a simple error handler, basically equivalent to
Either [SomeException]
. This type (without the list) was used to
handle conversion errors in early versions of pg.
One of the primary reasons why this type was introduced is that
Either SomeException
had not been provided an instance for Alternative
,
and it would have been a bad idea to provide an orphaned instance for a
commonly-used type and typeclass included in base
.
Extending the failure case to a list of SomeException
s enables a
more sensible Alternative
instance definitions: <|>
concatenates
the list of exceptions when both cases fail, and empty
is defined as
'Errors []'. Though <|>
one could pick one of two exceptions, and
throw away the other, and have empty
provide a generic exception,
this avoids cases where empty
overrides a more informative exception
and allows you to see all the different ways your computation has failed.
- data Ok a
- = Errors [SomeException]
- | Ok !a
- newtype ManyErrors = ManyErrors [SomeException]
Documentation
Errors [SomeException] | |
Ok !a |
newtype ManyErrors Source #
a way to reify a list of exceptions into a single exception