I'm worried that this doesn't actually hash the type itself, what if the type changes from `u16` to `u8`?