It should be fine to transmute from NonZeroU8
to u8
. To allow this, I don't think sound transmute should require commutative and instead of requiring the same set of niches , between T
and U
it should that the set of niches of T
is a super-set of the set of niches of U
. This would allow transmutes that strictly increase the amount of values a type can have, like NonZeroU8
to u8
.
Note that transmuting between NonZeroU8
to u8
is similar to transmuting from &T
to *const T
.