anchor.diff:          (and (fixnum-fits-in-single-float-p y)
                (sys.int::%%single-float-= x (float y 0.0f0))))
          (bignum
  -        (= (%%truncate-single-float-to-integer x) y))
  +        (if (and (or (sys.int::%%single-float-< sys.int::most-negative-fixnum-single-float x)
  +                     (sys.int::%%single-float-< x sys.int::most-positive-fixnum-single-float))
  +                 (not (sys.int::float-infinity-p x)))
  +            (= (%%truncate-single-float-to-integer x) y)
  +            nil))
          (ratio
           (ratio-= (rational x) y))
          (single-float
  
positive.code:        (bignum (sys.int::%%bignum-= x y))
         (ratio nil)
         (single-float
          (= x (%%truncate-single-float-to-integer y)))
         (double-float
          (= x (%%truncate-double-float-to-integer y)))
         (sys.int::complex-rational nil)
         ((sys.int::complex-single-float
           sys.int::complex-double-float)
  
negative.code:        (bignum (sys.int::%%bignum-< x y))
         (ratio (ratio-< x y))
         (single-float
          (bignum-float-compare x y single-float nil))
         (double-float
          (bignum-float-compare x y double-float nil))))
      (ratio
       (number-dispatch (y :expected-type 'real)
         ((fixnum bignum ratio) (ratio-< x y))
  