anchor.diff:                   ((< i pos) (aref vec i))
                    ((> i pos) (aref vec (1- i)))
                    (t item))))
  +    v))
  +
  +(defun vec-remove (vec pos)
  +  (let* ((len (1- (length vec)))
  +         (v (make-array len)))
  +    (loop for i below len do
  +         (setf (aref v i)
  +               (if (< i pos)
  +                   (aref vec i)
  +                   (aref vec (1+ i)))))
       v))
   
   (defun vec-update (vec pos item)
  
positive.code:                                    index
                                     new-node))))
  
  (defclass hamt ()
      ((test
        :reader hamt-test
  
negative.code:                                       (funcall (hamt-hash dict) key)
                                        0
                                        (hamt-test dict))))
  
  (defmethod dict-remove ((dict hamt) key)
    (make-instance 'hamt
                   :test (hamt-test dict)
                   :hash (hamt-hash dict)
                   :table (%hamt-remove (hamt-table dict)
                                        key
                                        (funcall (hamt-hash dict) key)
                                        0
                                        (hamt-test dict))))
  