
On Sep 21, 2013 4:17 PM, "Bob Hutchison"
On 2013-09-21, at 4:46 AM, Stijn van Drongelen
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.
I agree, but that might also be hardly relevant when fixing an existing language.
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.
Only when you start reasoning about (in)equalities. Really, in (a + b) * c = a * c + b * c, it isn't + or * that's causing problems, but =. I'm going to look at Kmett's work and that ltu link when I'm home ;)