Ok, let's say it is the effect of truncation. But then how do you explain this?
Prelude> sqrt 10.0 == 3.1622776601683795
True
Prelude> sqrt 10.0 == 3.1622776601683796
True
Ok, again something like truncation or rounding seems at work but the precision rules the GHC is using seem to be elusive, to me.
But more importantly, if one is advised NOT to test equality of two floating point values, what is the point in defining an Eq instance?
Is the Eq instance there just to make __the floating point types__ members of the Num class?