I do not think the lib consumer should access the various module protocol and their `StateX` types. We should try to use `pub(crate)` to direct a consumer in using the functions and structs introduced in `lib.rs` with #22.
I do not think the lib consumer should access the various module protocol and their
StateXtypes.We should try to use
pub(crate)to direct a consumer in using the functions and structs introduced inlib.rswith #22.