HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Package0.3.21Unclassified

safe

Library of safe (exception free) functions

Modules

4 modules
  • Safe91A module wrapping Prelude/Data.List functions that can throw exceptions, such as head and !!.
  • Safe.Exact28Provides functions that raise errors in corner cases instead of returning "best effort"
  • Safe.Foldable30Foldable functions, with wrappers like the Safe module.
  • Safe.Partial1ConstraintKind synonym for marking partial functions

Description

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.

Depends on

1 package

Used by in this set · 14