We should comb through the code and make sure errors are being handled properly, i.e.
- not swallowed
- caught in the right place
- wrapped if necessary
The last point refers to preserving an error's original error cause if it has been passed up the stack.
verror can help with this.
requires of errors can be made terser by requiring the entire directory and using object destructuring.