A library wrapping 'Prelude'/'Data.List' functions that can throw exceptions,
such as 'head' and '!!'. Each unsafe function has up to four variants, e.g.
'tail :: [a] -> [a]', raises an error on 'tail '.
'tailMay :: [a] -> /Maybe/ [a]', turns errors into 'Nothing'.
'tailDef :: /[a]/ -> [a] -> [a]', takes a default to return on errors.
'tailNote :: /String/ -> [a] -> [a]', takes an extra argument which
supplements the error message.
- 'tailSafe :: [a] -> [a]', returns some sensible default if possible, '' in
the case of 'tail'.
This package is divided into three modules:
"Safe" contains safe variants of 'Prelude' and 'Data.List' functions.
"Safe.Foldable" contains safe variants of 'Foldable' functions.
"Safe.Exact" creates crashing versions of functions like 'zip' (errors if the
lists are not equal) and 'take' (errors if there are not enough elements), then
wraps them to provide safe variants.