Currently, we use thiserror and io::Error to do all our error handling, but this is a little bit all over the place and not the best API design in the world; in particular snafu would allow us to attach context to the errors, giving a better debugging experience.