I don't really like having a "shared" module, it sounds too much like a "util" module.

I would prefer either putting them directly in `lib.rs` or making the shared module private and reexporting from lib.rs