[Haskell-cafe] Showing Data.Ratio - different on GHC vs Hugs/Yhc

Twan van Laarhoven twanvl at gmail.com
Fri Nov 16 20:55:40 EST 2007

Neil Mitchell wrote:

> Hi
> Under Hugs and Yhc, showing a Ratio 1%2 gives "1 % 2". Under GHC
> showing 1%2 gives "1%2". Does the standard say anything about this? Is
> someone wrong?

Yes, ghc is wrong here, the Haskell 98 report [1] specifies:

instance  (Integral a)  => Show (Ratio a)  where
     showsPrec p (x:%y)  =  showParen (p > ratPrec)
                                (showsPrec (ratPrec+1) x .
                                 showString " % " .
                                 showsPrec (ratPrec+1) y)

While it doesn't really matter, it is a deviation from the standard.

I would personally prefer it if rationals were shown as "1%2", because 
the space is not needed, and other show instances such as lists don't 
insert spaces either.

[1]: http://haskell.org/onlinereport/ratio.html


More information about the Haskell-Cafe mailing list