[Haskell-cafe] ANNOUNCE: approximate-equality 1.0 -- Newtype wrappers for approximate equality

Felipe Lessa felipe.lessa at gmail.com
Tue Aug 3 06:39:02 EDT 2010


On Tue, Aug 3, 2010 at 7:27 AM, Neil Brown <nccb2 at kent.ac.uk> wrote:
> I like the look of this.  Eq and Ord instances that use epsilon values look
> like they will be handy.  I have a design question/suggestion.  You have:

What properties does Eq need to obey?

Reflexivity: (a == a)
Symmetry: (a == b)  ==  (b == a)
Transitivity: ((a == b) && (b == c)) == (a == c)

An instance using epsilon values clearly is reflexive and symmetric,
but it is not transitive.

I've looked [1] and appearently Eq doesn't list the laws it should
satisfy, not even '(a == b) == not (a /= b)' is mentioned.

[1] http://haskell.org/ghc/docs/6.12.1/html/libraries/base-4.2.0.0/Prelude.html#t%3AEq

Cheers, =)

-- 
Felipe.


More information about the Haskell-Cafe mailing list