[Haskell-cafe] Mystery of an Eq instance

Bob Hutchison hutch-lists at recursive.ca
Sat Sep 21 16:17:03 CEST 2013


On 2013-09-21, at 4:46 AM, Stijn van Drongelen <rhymoid at gmail.com> wrote:

> I do have to agree with Damodar Kulkarni that different laws imply different classes. However, this will break **a lot** of existing software.

You could argue that the existing software is already broken.

> 
> If we would do this, only Eq and Ord need to be duplicated, as they cause most of the problems. Qualified imports should suffice to differentiate between the two.
> 
>     import qualified Data.Eq.Approximate as A
>     import qualified Data.Ord.Approximate as A
> 
>     main = print $ 3.16227766016837956 A.== 3.16227766016837955


As soon as you start doing computations with fp numbers things get much worse. Something like Edward Kmett's Numeric.Interval package would likely be helpful, a start at least (and the comments in the Numeric.Interval documentation are amusing) In the distant past when I was worried about maintaining accuracy in a solids modeller we went with an interval arithmetic library that we *carefully* implemented. It worked. Unpleasant in C, but it worked. And this link might be interesting:

   http://lambda-the-ultimate.org/node/1301

Cheers,
Bob
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20130921/362c1c91/attachment.htm>


More information about the Haskell-Cafe mailing list