anchor.diff:      ((#.+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)
  
positive.code:     (#.+array-type-unsigned-byte-64+
       (setf (memref-unsigned-byte-64 (+ (logand (lisp-object-address array) -16) 8)
                                      index)
             value))
      (#.+array-type-signed-byte-64+
       (setf (memref-signed-byte-64 (+ (logand (lisp-object-address array) -16) 8)
  
negative.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-2+
       (multiple-value-bind (offset bit)
           (truncate index 4)
         (ldb (byte 2 bit)
              (memref-unsigned-byte-8 (+ (logand (lisp-object-address array) -16) 8)
                                      offset))))
      (#.+array-type-unsigned-byte-4+
       (multiple-value-bind (offset bit)
           (truncate index 2)
         (ldb (byte 4 bit)
              (memref-unsigned-byte-8 (+ (logand (lisp-object-address array) -16) 8)
                                      offset))))
      (#.+array-type-unsigned-byte-8+
  