std::error::Error
std::io::Error
This makes client code a bit easier to write, since we can then use `?;` in more situations to just cast any kind of error.