The standard library now has a generic NonZero, so one can write, e.g. NonZero<u32> instead of NonZeroU32, and it seems the former is considered the better way of doing things.
It would be nice for this approach to be mirrored in this library (if possible): introduce a NonMax<T> type, and make e.g. NonMaxU32 an alias for NonMax<u32>.