anchor.diff:  
   (defun %make-item-cache (&optional items)
     (if items
  -      (make-array (length items) :adjustable t :fill-pointer 0
  -		  :initial-contents items)
  +      (let ((l (length items)))
  +	(make-array l :adjustable t :fill-pointer l
  +		    :initial-contents items))
         (make-array 0 :adjustable t :fill-pointer 0)))
  -
  -(defun %make-item-to-cache-array ()
  -  (make-array 0 :element-type 'fixnum :adjustable t :fill-pointer 0))
   
   (defun %make-callback-array ()
     (make-array 0 :element-type '(function (bag t) t)
  
positive.code: 
  (defun bag! () (make-bag))
  
  ;;----------------------------------------------------------------------
  
  (defun get-items (bag)
    (when (bag-cache-invalid-p bag)
      (%make-item-cache
       (loop :for item :in (bag-items))))
    (bag-item-cache bag))
  
  ;;----------------------------------------------------------------------
  
  (defun add-item (bag item &optional (test #'eq))
    (unless (find item (bag-items bag) :test test)
      (vector-push-extend item (bag-items bag))
      (vector-push-extend item (bag-item-cache bag))
      (vector-push-extend (1- (length (bag-item-cache bag)))
  			(bag-items-to-cache-indices bag)))
    (loop :for callback :across (bag-added-callbacks bag) :do
       (funcall callback bag item))
    bag)
  
negative.code: 	  (bag-item-cache bag) (%make-item-cache)
  	  (bag-holes-in-items bag) nil
  	  (bag-cache-invalid-p bag) nil
  	  (bag-added-callbacks bag) (%make-callback-array)
  	  (bag-removed-callbacks bag) (%make-callback-array))
      (loop :for callback :across (bag-removed-callbacks bag) :do
  