anchor.diff:      (declare (dynamic-extent v))
       (setf (sys:typed-aref '(unsigned-byte 32) v 0) ub)
       (sys:typed-aref 'single-float v 0))
  -  #-(or sbcl cmu ccl allegro lispworks)
  +  #+sbcl
  +  (sb-kernel:make-single-float (sb32ref/be vector index))
  +  #-(or allegro ccl cmu lispworks sbcl)
     (not-supported))
   
   #+sbcl (declaim (sb-ext:maybe-inline ieee-single-sef/be))
   (defun ieee-single-set/be (vector index value)
     (declare (ignorable value vector index))
  -  #+sbcl
  -  (progn
  -    (setf (sb32ref/be vector index) (sb-kernel:single-float-bits value))
  -    value)
  -  #+cmu
  -  (progn
  -    (setf (sb32ref/be vector index) (kernel:single-float-bits value))
  -    value)
  -  #+ccl
  -  (progn
  -    (setf (ub32ref/be vector index) (ccl::single-float-bits value))
  -    value)
     #+allegro
     (multiple-value-bind (hi lo) (excl:single-float-to-shorts value)
       (setf (ub16ref/be vector index) hi
             (ub16ref/be vector (+ index 2)) lo)
       value)
  +  #+ccl
  +  (progn
  +    (setf (ub32ref/be vector index) (ccl::single-float-bits value))
  +    value)
  +  #+cmu
  +  (progn
  +    (setf (sb32ref/be vector index) (kernel:single-float-bits value))
  +    value)
     #+lispworks
     (let* ((v (sys:make-typed-aref-vector 4)))
       (declare (optimize (speed 3) (float 0) (safety 0)))
  
positive.code:     (declare (dynamic-extent v))
      (setf (sys:typed-aref '(unsigned-byte 32) v 0) ub)
      (sys:typed-aref 'single-float v 0))
    #-(or sbcl cmu ccl allegro lispworks)
    (not-supported))
  
  #+sbcl (declaim (sb-ext:maybe-inline ieee-single-set/le))
  (defun ieee-single-set/le (vector index value)
    (declare (ignorable value vector index))
    #+sbcl
    (progn
      (setf (sb32ref/le vector index) (sb-kernel:single-float-bits value))
      value)
    #+cmu
    (progn
      (setf (sb32ref/le vector index) (kernel:single-float-bits value))
      value)
    #+ccl
    (progn
      (setf (ub32ref/le vector index) (ccl::single-float-bits value))
      value)
    #+allegro
    (multiple-value-bind (hi lo) (excl:single-float-to-shorts value)
      (setf (ub16ref/le vector (+ index 2)) hi
            (ub16ref/le vector index) lo)
      value)
    #+lispworks
    (let* ((v (sys:make-typed-aref-vector 4)))
      (declare (optimize (speed 3) (float 0) (safety 0)))
  
negative.code: #+sbcl (declaim (sb-ext:maybe-inline ieee-single-ref/be))
  (defun ieee-single-ref/be (vector index)
    (declare (ignorable vector index))
    #+allegro
    (let ((b (ub32ref/be vector index)))
      (excl:shorts-to-single-float (ldb (byte 16 16) b) (ldb (byte 16 0) b)))
    #+ccl
    (ccl::host-single-float-from-unsigned-byte-32 (ub32ref/be vector index))
    #+cmu
    (kernel:make-single-float (sb32ref/be vector index))
    #+lispworks
    (let* ((ub (ub32ref/be vector index))
           (v (sys:make-typed-aref-vector 4)))
  