> I've recently been toying with representing of Integer and Rational
> literals by strings all the way through the compiler to the code
> generator. This looks like a very good reason to do so.
But that isn't enough. The compiler has to know some limited
arithmetic on bignums (and rationals). Since all floating point
literals in Haskell actually have type Rational they have to
be treated as such. So when I write
1.232874632823462384532864236519283721523474326521375376351251273612522e-439
it must behave like the number it really stands for, namely
616437316411731192266432118259641860761737163260687688175625636806261 %
5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
So you need to emit a Rational with all the implications it has.
The lack of proper Integer and Rational literals in Hugs is very annoying
when you are doing work that needs them.
-- Lennart