Are the `uint8_t` etc. types necessary? It seems like it would be reasonable to map `uint8_t` directly to `u8`, and not have the extraneous (100% functionally identical) types.