Fixup c1035d51e to behave more like in GHC 7.6
authorHerbert Valerio Riedel <hvr@gnu.org>
Tue, 24 Jun 2014 20:58:41 +0000 (22:58 +0200)
committerHerbert Valerio Riedel <hvr@gnu.org>
Tue, 24 Jun 2014 21:30:12 +0000 (23:30 +0200)
commitec550e8f951e50fb91c89389e2e77a3358079c3a
tree50295797463e2fa4bcb9ecef53ce652925b58344
parentd8abf85f8ca176854e9d5d0b12371c4bc402aac3
Fixup c1035d51e to behave more like in GHC 7.6

The fix in c1035d51e (addressing #9231) was done under the assumption
that `Data.Fixed` is used only with power-of-10 `resolution`. This
follow-up fixup changes the behavior to be more consistent with the
previous behavior in GHC 7.6

For instance, for the following `B7` resolution

   > data B7
   > instance HasResolution B7 where resolution _ = 128

After this patch, the following behavior is now observable:

   > 1.070 :: Fixed B7
   1.062
   > 1.062 :: Fixed B7
   1.054

   > read "1.070" :: Fixed B7
   1.062
   > read "1.062" :: Fixed B7
   1.054

This doesn't provide the desirable "read . show == id" property
yet (which didn't hold in GHC 7.6 either), but at least `fromRational`
and `read` are consistent.

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
libraries/base/Data/Fixed.hs