For the record, I changed my mind on integer representations. There's no real information in the size of the integer type, a program can represent it in memory however it wants. Using a u32
won't keep anyone from publishing a message with a u64
anyways. So if anyone (including future-me) wants to build on this, I'd recommend treating all integers as the same type rather than distinguishing by fixed-size representations.
(related stuff to think through: Integers vs naturals, integers vs floats, integers vs rationals, integers of a maximum size vs integers of arbitrary size)