sqlite-simple-0.4.18.2: Mid-Level SQLite client library
Copyright(c) 2012 Leon P Smith
(c) 2012-2013 Janne Hellsten
LicenseBSD3
MaintainerJanne Hellsten <jjhellst@gmail.com>
Safe HaskellSafe-Inferred
LanguageHaskell2010

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

Synopsis

Documentation

data Ok a #

Constructors

Errors [SomeException] 
Ok !a 

Instances

Instances details
MonadFail Ok # 
Instance details

Defined in Database.SQLite.Simple.Ok

Methods

fail :: String -> Ok a

Alternative Ok # 
Instance details

Defined in Database.SQLite.Simple.Ok

Methods

empty :: Ok a

(<|>) :: Ok a -> Ok a -> Ok a

some :: Ok a -> Ok [a]

many :: Ok a -> Ok [a]

Applicative Ok # 
Instance details

Defined in Database.SQLite.Simple.Ok

Methods

pure :: a -> Ok a

(<*>) :: Ok (a -> b) -> Ok a -> Ok b

liftA2 :: (a -> b -> c) -> Ok a -> Ok b -> Ok c

(*>) :: Ok a -> Ok b -> Ok b

(<*) :: Ok a -> Ok b -> Ok a

Functor Ok # 
Instance details

Defined in Database.SQLite.Simple.Ok

Methods

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

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

Monad Ok # 
Instance details

Defined in Database.SQLite.Simple.Ok

Methods

(>>=) :: Ok a -> (a -> Ok b) -> Ok b

(>>) :: Ok a -> Ok b -> Ok b

return :: a -> Ok a

MonadPlus Ok # 
Instance details

Defined in Database.SQLite.Simple.Ok

Methods

mzero :: Ok a

mplus :: Ok a -> Ok a -> Ok a

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

Defined in Database.SQLite.Simple.Ok

Methods

showsPrec :: Int -> Ok a -> ShowS

show :: Ok a -> String

showList :: [Ok a] -> ShowS

Eq a => Eq (Ok a) #

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

Instance details

Defined in Database.SQLite.Simple.Ok

Methods

(==) :: Ok a -> Ok a -> Bool

(/=) :: Ok a -> Ok a -> Bool

newtype ManyErrors #

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

Constructors

ManyErrors [SomeException] 

Instances

Instances details
Exception ManyErrors # 
Instance details

Defined in Database.SQLite.Simple.Ok

Methods

toException :: ManyErrors -> SomeException

fromException :: SomeException -> Maybe ManyErrors

displayException :: ManyErrors -> String

Show ManyErrors # 
Instance details

Defined in Database.SQLite.Simple.Ok

Methods

showsPrec :: Int -> ManyErrors -> ShowS

show :: ManyErrors -> String

showList :: [ManyErrors] -> ShowS