Comments like this on functions make me think that this shouldn't be a public API at all. I'm still a little confused why this module can't be exposed as a `Reader` and a `Writer` implementation. Shouldn't that sort of interface be just as efficient as the methods exposed here? It also seems like it'd be much simpler to read over.