safe-failure-0.2: Partial functions from the prelude with a MonadFailure interfaceSource codeContentsIndex
Safe.Failure
Portabilityportable
Stabilityin-progress
Maintainerpepeiborra@gmail.com
Contents
List Functions
Maybe functions
Other Prelude functions
Useful combinators
Assertions
IO functions
Exceptions
Description

A library for safe functions, based on standard functions that may crash.

This module reexports versions which produce exceptions in an arbitrary MonadFailure monad.

Synopsis
head :: MonadFailure HeadFailure m => [a] -> m a
tail :: MonadFailure TailFailure m => [a] -> m [a]
init :: MonadFailure InitFailure m => [a] -> m [a]
last :: MonadFailure LastFailure m => [a] -> m a
minimum :: (Ord a, MonadFailure MinimumFailure m) => [a] -> m a
maximum :: (Ord a, MonadFailure MaximumFailure m) => [a] -> m a
foldr1 :: MonadFailure Foldr1Failure m => (a -> a -> a) -> [a] -> m a
foldl1 :: MonadFailure Foldl1Failure m => (a -> a -> a) -> [a] -> m a
at :: MonadFailure IndexFailure m => [a] -> Int -> m a
lookup :: (Eq a, MonadFailure (LookupFailure a) m) => a -> [(a, b)] -> m b
fromJust :: MonadFailure FromJustFailure m => Maybe a -> m a
read :: (Read a, MonadFailure ReadFailure m) => String -> m a
def :: a -> Maybe a -> a
note :: Exception e => String -> Either e a -> a
assert :: (MonadFailure e m, Exception e) => Bool -> v -> e -> m v
readFile :: (MonadFailure IOException m, MonadIO m) => FilePath -> m String
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 :: MonadFailure HeadFailure m => [a] -> m aSource
tail :: MonadFailure TailFailure m => [a] -> m [a]Source
init :: MonadFailure InitFailure m => [a] -> m [a]Source
last :: MonadFailure LastFailure m => [a] -> m aSource
minimum :: (Ord a, MonadFailure MinimumFailure m) => [a] -> m aSource
maximum :: (Ord a, MonadFailure MaximumFailure m) => [a] -> m aSource
foldr1 :: MonadFailure Foldr1Failure m => (a -> a -> a) -> [a] -> m aSource
foldl1 :: MonadFailure Foldl1Failure m => (a -> a -> a) -> [a] -> m aSource
at :: MonadFailure IndexFailure m => [a] -> Int -> m aSource
lookup :: (Eq a, MonadFailure (LookupFailure a) m) => a -> [(a, b)] -> m bSource
 lookupJust key = fromJust . lookup key
Maybe functions
fromJust :: MonadFailure FromJustFailure m => Maybe a -> m aSource
Other Prelude functions
read :: (Read a, MonadFailure ReadFailure m) => String -> m aSource
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 :: (MonadFailure 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.
IO functions
readFile :: (MonadFailure IOException m, MonadIO m) => FilePath -> m StringSource
The standard readFile function with any IOExceptions returned as a failure instead of a runtime exception.
Exceptions
data SafeException Source
Constructors
forall e . Exception e => SafeException e
show/hide Instances
data HeadFailure Source
Constructors
HeadFailure
show/hide Instances
data TailFailure Source
Constructors
TailFailure
show/hide Instances
data InitFailure Source
Constructors
InitFailure
show/hide Instances
data LastFailure Source
Constructors
LastFailure
show/hide Instances
data MaximumFailure Source
Constructors
MaximumFailure
show/hide Instances
data MinimumFailure Source
Constructors
MinimumFailure
show/hide Instances
data Foldl1Failure Source
Constructors
Foldl1Failure
show/hide Instances
data Foldr1Failure Source
Constructors
Foldr1Failure
show/hide Instances
data IndexFailure Source
Constructors
IndexFailure Int
show/hide Instances
data LookupFailure a Source
Constructors
LookupFailure a
show/hide Instances
data FromJustFailure Source
Constructors
FromJustFailure
show/hide Instances
data ReadFailure Source
Constructors
ReadFailure String
show/hide Instances
Produced by Haddock version 2.6.0