In 64-bit machines, the max small nat value should now be (2^63 - 1), and on 32-bit machines (2^32 - 1). The main motivation for this modification are the array indexing operations. With the new representation, if a Nat index is not small, then it must not be a valid index. This was not true in 64-bit machines. Example: an array of size 2^33 would fit in memory, and but an index `i` > 2^32 - 1 would not be a small nat value. |
||
|---|---|---|
| .. | ||
| kernel | ||
| library | ||
| util | ||