
On 7/22/07, haskell@list.mightyreason.com
I am going to take a guess and say that the library policy is that (Num Integer) and (Ratio Integer) are known to follow the axioms, but anyone who uses (Num Int) and (Ratio Int) did so to get the size and performance and does not want to cast to Integer.
The current implementation of < for Ratio Int is no better than a coin flip. That is, if you take two elements of Ratio Int at random and compare them with <, the answer will be right 50% of the time, and wrong 50% of the time. I would assume that if someone is comparing two elements of Ratio Int with <, they're doing so because they want the right answer. If they don't care what answer they get, they can just assume True and be even more efficient. Also, I don't think it's generally well known that the overflow problems are as bad as they are. For example, the documentation at http://haskell.org/ghc/docs/latest/html/libraries/base/Data-Ratio.html doesn't include any warnings that Ratio Int doesn't obey the documented behavior of Ord.