anchor.diff:       (:result-type fixnum))
     `(call sys.int::%%truncate-single-float ,number))
   
  +;; Don't use EQ because NaNs are unorderable.
   (define-transform sys.int::binary-= ((lhs single-float) (rhs single-float))
       ((:optimize (= safety 0) (= speed 3)))
  -  `(call eq ,lhs ,rhs))
  +  `(call sys.int::%%single-float-= ,lhs ,rhs))
   
   (define-transform sys.int::binary-< ((lhs single-float) (rhs single-float))
       ((:optimize (= safety 0) (= speed 3)))
  
positive.code:     ((:optimize (= safety 0) (= speed 3)))
    `(call not (call sys.int::%%double-float-< ,rhs ,lhs)))
  
  ;;; Fast array accesses. Unbounded and may attack at any time.
  ;;; Currently only functional on simple 1d arrays.
  
  (defmacro define-fast-array-transform (type accessor)
  
negative.code:   `(the double-float
          (call mezzano.runtime::%%coerce-fixnum-to-double-float ,number)))
  
  ;; Don't use EQ because double floats are not immediates.
  (define-transform sys.int::binary-= ((lhs double-float) (rhs double-float))
      ((:optimize (= safety 0) (= speed 3)))
    `(call sys.int::%%double-float-= ,lhs ,rhs))
  
  (define-transform sys.int::binary-< ((lhs double-float) (rhs double-float))
      ((:optimize (= safety 0) (= speed 3)))
  