The safe package

Partial functions from the base library, such as head and !!, modified
to return more descriptive error messages, programmer defined error messages,
Maybe wrapped results and default values.
These functions can be used to reduce the number of unsafe pattern matches in
your code.