| Stability | experimental |
|---|---|
| Maintainer | leon@melding-monads.com |
| Safe Haskell | Safe-Inferred |
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 postgresql-simple.
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: <|> concatinates 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