An error library that allows wrapping of one error with another, extending with further information and preserving all wrapped errors for comparisons.
Where possible this library wraps standard errors library functions.