anchor.diff:  
     ;; a holeless array with the same elements as items
     (item-cache (%make-item-cache) :type (array t (*)))
  -
  -  ;; an array where the nth element hold the index into the
  -  ;; item-cache where you can find the nth element of 'items
  -  (items-to-cache-indices (%make-item-to-cache-array) :type (array fixnum (*)))
   
     ;; quick lookup for cache state
     (cache-invalid-p nil :type boolean)
  
positive.code: 
  (defun %make-item-cache (&optional items)
    (if items
        (make-array (length items) :adjustable t :fill-pointer 0
  		  :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)
  
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
  