devel/hs-safe - The NetBSD Packages Collection

Library for safe (pattern match free) functions

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.

Build dependencies

pkgtools/mktools pkgtools/cwrappers

Runtime dependencies

lang/ghc96

Binary packages

OSArchitectureVersion
NetBSD 10.0aarch64hs-safe-0.3.19nb7.tgz
NetBSD 10.0aarch64hs-safe-0.3.19nb5.tgz
NetBSD 10.0aarch64hs-safe-0.3.19nb5.tgz
NetBSD 10.0x86_64hs-safe-0.3.19nb7.tgz
NetBSD 10.0_BETAx86_64hs-safe-0.3.19nb5.tgz
NetBSD 8.0x86_64hs-safe-0.3.19nb5.tgz
NetBSD 8.0x86_64hs-safe-0.3.19nb5.tgz
NetBSD 9.0aarch64hs-safe-0.3.19nb7.tgz
NetBSD 9.0aarch64hs-safe-0.3.19nb5.tgz
NetBSD 9.0aarch64hs-safe-0.3.19nb5.tgz
NetBSD 9.0x86_64hs-safe-0.3.19nb7.tgz
NetBSD 9.0x86_64hs-safe-0.3.19nb5.tgz
NetBSD 9.3x86_64hs-safe-0.3.19nb5.tgz
NetBSD 9.3x86_64hs-safe-0.3.19nb7.tgz

Binary packages can be installed with the high-level tool pkgin (which can be installed with pkg_add) or pkg_add(1) (installed by default). The NetBSD packages collection is also designed to permit easy installation from source.

Available build options

(none)

Known vulnerabilities

The pkg_admin audit command locates any installed package which has been mentioned in security advisories as having vulnerabilities.

Please note the vulnerabilities database might not be fully accurate, and not every bug is exploitable with every configuration.


Problem reports, updates or suggestions for this package should be reported with send-pr.