compare on Double

Ian Lynagh igloo at earth.li
Thu Mar 22 10:32:34 EDT 2007


On Thu, Mar 22, 2007 at 10:52:24AM +0000, Neil Mitchell wrote:
> 
> My main point was the question of whether compilers are free to
> optimise _|_ to a concrete (non-nonsensical) value.

No.

Note that in the bytestring case the compiler doesn't do so, it's the
library that does (by telling the compiler to rewrite things with
RULEs).

And it's very naughty for doing so, and should go to bed with no supper.

Unfortunately, it's very appealing in bytestring's case...

> I'm still not happy with adding more incompleteness into something
> that intuitively feels safe - compare is pretty benign. Having a crash
> on division is something that does appeal to me more.
> 
> For reference, my Catch tool treats Float/Double compare as never
> crashing, and division by zero as always crashing

Even for Double/Float?

There's also:

    Prelude> (minBound :: Int) `div` (-1)
    *** Exception: arithmetic overflow

but you probably can't do much about that in Catch.


Thanks
Ian



More information about the Libraries mailing list