Given a string representing a decimal point literal (ex. "0.25"), the number it represents is guaranteed to be rational. It seems appropriate for Ratio to parse such strings.

readDecimalRatio :: (Integral a, Read a) => ReadPrec (Ratio a)

readDecimalRatio = parens $ do

Number x <- lexP

return (numberToRational x)

Combine this by (+++) with the original `readPrec` from the instance Read Ratio.

_______________________________________________

Libraries mailing list

[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries