On Sat, Jun 28, 2014 at 10:52 PM, Brandon Allbery <allbery.b@gmail.com> wrote:
I imagine that, like Ord, a decision was made to implement the proper mathematical abstraction and not merely a convenient one. This seems to be the "Haskell way". (I'm not sure how it explains Double, though the numeric hierarchy has a lot of compromises in the name of convenience or expected behavior. Possibly Monad was in some sense a reaction to this, even: "we got that one wrong, let's do this one correctly".)

Double, like Int, is a computer construct, not a mathematical one.  They both map to hardware types that act like mathematical ones until you look closely, but have better performance than the software constructs that have better behavior.