thiserror implements std::error::Error so that users don't have to depend on failure crate externally or this library doesn't have to re-export failure crate.
Another reason is thiserror has become a defacto crate for error handling in rust and hence might provide better interoperability with other crates
I'll send a PR if this sounds good to you