On July 10, 2012 09:28:27 Christian Maeder wrote: > Am 10.07.2012 13:06, schrieb Sönke Hahn: > > I've attached the code. The code does not make direct use of > > unsafePerformIO. It uses QuickCheck, but I don't think, this is a > > QuickCheck bug. The used Eq-instance is the one for Float. > > The Eq-instance for floats is broken wrt NaN > > Prelude> (0/0 :: Float) == 0/0 > False > > I do not know if you create NaN in your tests, though.
Would that really be broken though? NaN can arrise from many contexts (e.g., sqrt(-1)), so it would also not make much sense to return True. The IEEE standard actually defines a mutually exclusive fourth "unordered" state wrt to NaNs for comparisons (in addition to lesser, greater, and equal). I would like to suggest native floating point might be better modelled as "Maybe Float", with NaN being the builtin "Nothing", but leaves out Inf. Cheers! -Tyson _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users