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: 
  ;;; Unboxed fixnum arithmetic.
  ;;; These only apply at safety 0 as they can produce invalid values which
  ;;; can damage the system.
  
  (defmacro define-fast-fixnum-transform-arith-two-arg (binary-fn fast-fn &key (result 'fixnum))
    `(define-transform ,binary-fn ((lhs fixnum) (rhs fixnum))
  
negative.code:     ((:optimize (= safety 0) (= speed 3)))
    `(call not (call sys.int::%%double-float-< ,rhs ,lhs)))
  
  ;;; Fast array accesses, avoid type-dispatch in AREF.
  ;;; These check bounds, but not the type.
  ;;; Currently only functional on simple 1d arrays.
  
  (defmacro define-fast-array-transform (type accessor)
  