anchor.diff:      (#.+array-type-unsigned-byte-64+
        (memref-unsigned-byte-64 (+ (logand (lisp-object-address array) -16) 8)
                                 index))
  +    (#.+array-type-signed-byte-1+
  +     (multiple-value-bind (offset bit)
  +         (truncate index 8)
  +       (signify (ldb (byte 1 bit)
  +                     (memref-unsigned-byte-8 (+ (logand (lisp-object-address array) -16) 8)
  +                                             offset))
  +                1)))
  +    (#.+array-type-signed-byte-2+
  +     (multiple-value-bind (offset bit)
  +         (truncate index 4)
  +       (signify (ldb (byte 2 bit)
  +                     (memref-unsigned-byte-8 (+ (logand (lisp-object-address array) -16) 8)
  +                                             offset))
  +                2)))
  +    (#.+array-type-signed-byte-4+
  +     (multiple-value-bind (offset bit)
  +         (truncate index 2)
  +       (signify (ldb (byte 4 bit)
  +                     (memref-unsigned-byte-8 (+ (logand (lisp-object-address array) -16) 8)
  +                                             offset))
  +                4)))
  +    (#.+array-type-signed-byte-8+
  +     (memref-signed-byte-8 (+ (logand (lisp-object-address array) -16) 8)
  +                           index))
  +    (#.+array-type-signed-byte-16+
  +     (memref-signed-byte-16 (+ (logand (lisp-object-address array) -16) 8)
  +                            index))
  +    (#.+array-type-signed-byte-32+
  +     (memref-signed-byte-32 (+ (logand (lisp-object-address array) -16) 8)
  +                            index))
       (#.+array-type-signed-byte-64+
        (memref-signed-byte-64 (+ (logand (lisp-object-address array) -16) 8)
                               index))))
  
positive.code:      (multiple-value-bind (offset bit)
           (truncate index 8)
         (ldb (byte 1 bit)
              (memref-unsigned-byte-8 (+ (logand (lisp-object-address array) -16) 8)
                                      offset))))
      (#.+array-type-unsigned-byte-8+
  
negative.code:     ((#.+array-type-base-char+ #.+array-type-character+)
       (setf (schar array index) value))
      (#.+array-type-bit+
       (check-type value bit)
       (multiple-value-bind (offset bit)
           (truncate index 8)
         (setf (ldb (byte 1 bit)
                    (memref-unsigned-byte-8 (+ (logand (lisp-object-address array) -16) 8)
                                            offset))
               value)))
      (#.+array-type-unsigned-byte-2+
       (check-type value (unsigned-byte 2))
       (multiple-value-bind (offset bit)
           (truncate index 4)
         (setf (ldb (byte 2 bit)
                    (memref-unsigned-byte-8 (+ (logand (lisp-object-address array) -16) 8)
                                            offset))
               value)))
      (#.+array-type-unsigned-byte-4+
       (check-type value (unsigned-byte 4))
       (multiple-value-bind (offset bit)
           (truncate index 2)
         (setf (ldb (byte 4 bit)
                    (memref-unsigned-byte-8 (+ (logand (lisp-object-address array) -16) 8)
                                            offset))
               value)))
      (#.+array-type-unsigned-byte-8+
       (setf (memref-unsigned-byte-8 (+ (logand (lisp-object-address array) -16) 8)
                                     index)
  