I'm not saying why have error reporting at all, I'm asking about this specific approach, for example as opposed to the article being discussed.
I'd actually say that the article and my suggestion are basically compatible. If you check out my gist [1], you'll see that I have basically the same number of user-facing types (or maybe a slightly smaller number as I merged a few structs and enums in some spots).
[1]: https://gist.github.com/shepmaster/fb7f4c9519a074ea7186ca7b7...