Hugs (September 2006) has buggy definitions for
isNaN and
isInfinite on Float and Double. If this module is run through
CPP with the macro
HUGS set to a value no larger than
200609, then correct definitions are used. Otherwise the Prelude
definitions are used (which should be correct for other compilers).
For example, run Hugs with
hugs -F'cpp -P -DHUGS=200609' Hugs/RealFloat.hs
N.B. The corrected definitions have only been tested to work for
Float and
Double. These definitions should probably not
be used for other
RealFloat types.
This installation was compiled with the normal Prelude version.
This should be correct.