> I don't really like having a "shared" module, it sounds too much like a "util" module.
I might be missing some context behind "util", but what's wrong with it? We may need to share pieces off code between compression blocks.

> I would prefer either putting them directly in ```lib.rs``` or making the shared module private and reexporting from ```lib.rs```
Ok, from the client point of view it would only change the use path from ```compress::shared::FiniteWriter``` to ```compress::FiniteWriter```