postgresql-simple- Mid-Level PostgreSQL client library

Copyright(c) 2012 Leon P Smith
Safe HaskellSafe-Inferred



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 Source


Errors [SomeException] 
Ok !a 


Alternative Ok 
Monad Ok 
Functor Ok 
MonadPlus Ok 
Applicative Ok 
Eq a => Eq (Ok a)

Two Errors cases are considered equal, regardless of what the list of exceptions looks like.

Show a => Show (Ok a) 
Typeable (* -> *) Ok 

newtype ManyErrors Source

a way to reify a list of exceptions into a single exception


ManyErrors [SomeException]