Arbitrary precision integers. In contrast with fixed-size integral
types such as Int, the Integer type represents the
entire infinite range of integers.
For more information about this type's representation, see the
comments in its implementation.
Conversion from an Integer. An integer literal represents the
application of the function fromInteger to the appropriate
value of type Integer, so such literals have type
(Num a) => a.