sqlite-simple-0.4.18.2: Mid-Level SQLite client library
Copyright (c) 2012 Leon P Smith
(c) 2012-2013 Janne Hellsten
License BSD3
Maintainer Janne Hellsten <jjhellst@gmail.com>
Safe Haskell Safe-Inferred
Language Haskell2010

Database.SQLite.Simple.Ok

Description

The Ok type is a simple error handler, basically equivalent to Either [SomeException] .

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: <|> 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.

Synopsis

Documentation

data Ok a Source #

Constructors

Errors [ SomeException ]
Ok !a

Instances

Instances details
Monad Ok Source #
Instance details

Defined in Database.SQLite.Simple.Ok

Functor Ok Source #
Instance details

Defined in Database.SQLite.Simple.Ok

Methods

fmap :: (a -> b) -> Ok a -> Ok b Source #

(<$) :: a -> Ok b -> Ok a Source #

MonadFail Ok Source #
Instance details

Defined in Database.SQLite.Simple.Ok

Applicative Ok Source #
Instance details

Defined in Database.SQLite.Simple.Ok

Alternative Ok Source #
Instance details

Defined in Database.SQLite.Simple.Ok

MonadPlus Ok Source #
Instance details

Defined in Database.SQLite.Simple.Ok

Eq a => Eq ( Ok a) Source #

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

Instance details

Defined in Database.SQLite.Simple.Ok

Show a => Show ( Ok a) Source #
Instance details

Defined in Database.SQLite.Simple.Ok