So, as they int/uint debate has unfolded, there's been a bit more clarity about tradeoffs on choices like this.

Here you're not gaining much by limiting to a small static size, since you check dynamically and this is unlikely to be perf sensitive. OTOH this introduce an ergonomics problem, because if your computation produces a larger `int` type you'll have to manually cast.

We expect to introduce implicit widening conversions, which suggest that the most ergonomic solution would actually be `u64` (since everything else can widen to it). In practice I think that would not produce any actual overhead. But it would look a bit odd for sure!

Anyway, I'm not really sure what the right answer is here, just wanted to point out some of the drawbacks.

Finally, given that we're likely to eliminate `uint` this will definitely have to change to something else :-) But we could leave that for the giant `int` cleanup pass that's going to have to happen during alpha.