safe: Library of safe (exception free) functions

[ bsd3, library, unclassified ] [ Propose Tags ]
This version is deprecated.

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

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


[Skip to Readme]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.2, 0.3, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.3.8, 0.3.9, 0.3.10, 0.3.11, 0.3.12, 0.3.13, 0.3.14, 0.3.15, 0.3.16, 0.3.17, 0.3.18, 0.3.19, 0.3.20, 0.3.21 (info)
Change log CHANGES.txt
Dependencies base (>=4.8 && <5) [details]
License BSD-3-Clause
Copyright Neil Mitchell 2007-2019
Author Neil Mitchell <ndmitchell@gmail.com>
Maintainer Neil Mitchell <ndmitchell@gmail.com>
Revised Revision 1 made by NeilMitchell at 2019-12-04T13:40:55Z
Category Unclassified
Home page https://github.com/ndmitchell/safe#readme
Bug tracker https://github.com/ndmitchell/safe/issues
Source repo head: git clone https://github.com/ndmitchell/safe.git
Uploaded by NeilMitchell at 2019-12-04T10:51:44Z
Distributions Arch:0.3.21, Debian:0.3.19, Fedora:0.3.19, FreeBSD:0.3.9, LTSHaskell:0.3.21, NixOS:0.3.21, Stackage:0.3.21, openSUSE:0.3.21
Reverse Dependencies 390 direct, 4653 indirect [details]
Downloads 210169 total (426 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2019-12-04 [all 1 reports]

Readme for safe-0.3.18

[back to package description]

Safe Hackage version Stackage version Build status

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

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