Currently we use https://github.com/DanielKeep/rust-error-type for error handling, which isn't quite as ergonomic to use as https://github.com/brson/error-chain