Data.Scientific provides a space efficient and arbitrary precision
scientific number type.
Scientific numbers are represented using scientific notation. It uses a
coefficient c :: Integer and a base-10 exponent e :: Int (do note that
since we're using an Int to represent the exponent these numbers aren't
truly arbitrary precision). A scientific number corresponds to the
Fractional number: fromInteger c * 10 ^^ e.