anchor.diff:  		      (make-array 0 :element-type '(or ,element-type null) :adjustable t
   				  :fill-pointer 0))
   		    (%make-callback-array ()
  -		      (make-array 0 :element-type '(function (,root-type ,element-type) t)
  +		      (make-array 0 :element-type '(function (,bag-type ,element-type) t)
   				  :adjustable t :fill-pointer 0))
   
   		    (%remove-item-from-cache (bag pos-in-item-array)
  
positive.code: 
  	     (defun ,(symb 'add-on- element-type '-added-callback) (bag callback)
  	       (declare (,bag-type bag)
  			((function (,root-type ,element-type) t) callback))
  	       (vector-push-extend callback (,added-callbacks bag))
  	       bag)
  
  	     (defun ,(symb 'add-on- element-type '-removed-callback) (bag callback)
  	       (declare (,bag-type bag)
  			((function (,root-type ,element-type) t) callback))
  	       (vector-push-extend callback (,removed-callbacks bag))
  	       bag)
  
  	     (defun ,(symb 'remove-on- element-type '-added-callback) (bag callback)
  	       (declare (,bag-type bag)
  			((function (,root-type ,element-type) t) callback))
  	       (setf (,removed-callbacks bag)
  		     (delete callback (,removed-callbacks bag) :count 1))
  	       bag)
  
  	     (defun ,(symb 'remove-on- element-type '-removed-callback) (bag callback)
  	       (declare (,bag-type bag)
  			((function (,root-type ,element-type) t) callback))
  	       (setf (,removed-callbacks bag)
  		     (delete callback (,removed-callbacks bag) :count 1))
  	       bag)
  
  	     (defun ,(symb 'rummage- element-type '-bag ) (bag predicate)
  	       (declare (,bag-type bag)
  			((function (,element-type) boolean) predicate))
  	       (let ((r (,(symb 'make- rummager-type) :predicate predicate)))
  		 (%add-rummager bag r)
  		 r))
  
  	     (defun ,(symb 'stop- element-type '-rummaging) (bag rummage)
  	       (declare (,bag-type bag) (,rummager-type rummage))
  	       (%remove-rummager bag rummage))))))))
  
negative.code: 	 (defmethod print-object ((object ,rummager-type) stream)
  	   (format stream ,(format nil "#<RUMMAGER-FOR-BAGS-OF-~s (~~s) (~~s)>"
  				   element-type)
  		   (length (,item-cache (,rummager-bag object)))
  		   (,predicate object)))
  	 (let ((,eraser (let ((tmp ,(first eraser-instance)))
  			  (assert (typep tmp ',element-type)) tmp)))
  