Portability | portable |
---|---|
Stability | in-progress |
Maintainer | [email protected] |
Safe.Failure
Contents
Description
A library for safe functions, based on standard functions that may crash.
This module reexports versions which produce exceptions in an arbitrary Failure
.
- head :: Failure HeadFailure m => [a] -> m a
- tail :: Failure TailFailure m => [a] -> m [a]
- init :: Failure InitFailure m => [a] -> m [a]
- last :: Failure LastFailure m => [a] -> m a
- minimum :: (Ord a, Failure MinimumFailure m) => [a] -> m a
- maximum :: (Ord a, Failure MaximumFailure m) => [a] -> m a
- foldr1 :: Failure Foldr1Failure m => (a -> a -> a) -> [a] -> m a
- foldl1 :: Failure Foldl1Failure m => (a -> a -> a) -> [a] -> m a
- at :: Failure IndexFailure m => [a] -> Int -> m a
- lookup :: (Eq a, Failure (LookupFailure a) m) => a -> [(a, b)] -> m b
- fromJust :: Failure FromJustFailure m => Maybe a -> m a
- read :: (Read a, Failure ReadFailure m) => String -> m a
- def :: a -> Maybe a -> a
- note :: Exception e => String -> Either e a -> a
- assert :: (Failure e m, Exception e) => Bool -> v -> e -> m v
- data SafeException = forall e . Exception e => SafeException e
- data HeadFailure = HeadFailure
- data TailFailure = TailFailure
- data InitFailure = InitFailure
- data LastFailure = LastFailure
- data MaximumFailure = MaximumFailure
- data MinimumFailure = MinimumFailure
- data Foldl1Failure = Foldl1Failure
- data Foldr1Failure = Foldr1Failure
- data IndexFailure = IndexFailure Int
- data LookupFailure a = LookupFailure a
- data FromJustFailure = FromJustFailure
- data ReadFailure = ReadFailure String
List Functions
head :: Failure HeadFailure m => [a] -> m aSource
tail :: Failure TailFailure m => [a] -> m [a]Source
init :: Failure InitFailure m => [a] -> m [a]Source
last :: Failure LastFailure m => [a] -> m aSource
minimum :: (Ord a, Failure MinimumFailure m) => [a] -> m aSource
maximum :: (Ord a, Failure MaximumFailure m) => [a] -> m aSource
foldr1 :: Failure Foldr1Failure m => (a -> a -> a) -> [a] -> m aSource
foldl1 :: Failure Foldl1Failure m => (a -> a -> a) -> [a] -> m aSource
at :: Failure IndexFailure m => [a] -> Int -> m aSource
lookup :: (Eq a, Failure (LookupFailure a) m) => a -> [(a, b)] -> m bSource
lookupJust key = fromJust . lookup key
Maybe functions
fromJust :: Failure FromJustFailure m => Maybe a -> m aSource
Other Prelude functions
Useful combinators
def :: a -> Maybe a -> aSource
def
, use it to return a default value in the event of an error.
E.g. you can define a version of tail
which returns a default
value when the list is empty
tailDef defaultValue = def defaultValue . tail
note :: Exception e => String -> Either e a -> aSource
note
, use it to fail with an annotated runtime error
Assertions
assert :: (Failure e m, Exception e) => Bool -> v -> e -> m vSource
Assert a value to be true. If true, returns the first value as a succss. Otherwise, returns the second value as a failure.
Exceptions
data SafeException Source
Constructors
forall e . Exception e => SafeException e |
data MaximumFailure Source
Constructors
MaximumFailure |
data MinimumFailure Source
Constructors
MinimumFailure |
data Foldl1Failure Source
Constructors
Foldl1Failure |
data Foldr1Failure Source
Constructors
Foldr1Failure |
data IndexFailure Source
Constructors
IndexFailure Int |
data LookupFailure a Source
Constructors
LookupFailure a |
Instances
Typeable1 LookupFailure | |
Show a => Show (LookupFailure a) | |
(Typeable a, Show a) => Exception (LookupFailure a) |
data FromJustFailure Source
Constructors
FromJustFailure |