| Copyright | (c) 2012-2015 Leon P Smith |
|---|---|
| License | BSD3 |
| Maintainer | leon@melding-monads.com |
| Stability | experimental |
| Safe Haskell | Safe |
| Language | Haskell98 |
Database.PostgreSQL.Simple.Ok
Description
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 SomeExceptions 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
Constructors
| Errors [SomeException] | |
| Ok !a |
newtype ManyErrors Source #
a way to reify a list of exceptions into a single exception
Constructors
| ManyErrors [SomeException] |
Instances