> In Haskell, this type of integer can't get bigger than 2^31...
It's platform-dependent
h> finiteBitSize (0 :: Int)
64
> We could have used the type Integer instead- This type of integer grows "magically" and can hold any sized integer, no matter how big... but it's slower, so we used Int instead, since our numbers will never get that big.Premature optimisation at its best.