I’m hoping that <a href="https://github.com/golang/go/issues/19623" rel="nofollow">https://github.com/golang/go/issues/19623</a> will come through, and we’ll get a native “true integer” type (and hopefully a rational one as well, though maybe this is pushing it a bit). This is really something that should be implemented at the language level, so that “int” can become a true integer, yet still remain efficient in many cases.<p>It is bizarre to me that languages boasting built-in language-level data structures like lists, hashtables, etc are content to just leave us with the bare minimum support of <i>numbers</i>, being basically whatever the hardware thinks a number is. The semantics of integers and fractions are perfect, and everybody already knows them. On the other hand, overflows in int32’s are weird, and if your idea of a fraction is a floating-point number, then you can never have something like (5/3)*6 evaluate to 10 exactly.<p>To be clear, I think fixed-width integers and floating-point numbers have their place, I just see no reason why they should be the default.