anchor.diff:  	     `(progn
   		(defmethod ,slot :around ((node persistent-red-black-node))
   		  (require-rb-transaction)
  -		  (let ((location (call-next-method)))
  -		    (or (object-for-location *rb-transaction* location)
  -			(let ((node (prb-load (storage (tree *rb-transaction*)) location)))
  -			  (add-opened-node *rb-transaction* node location)
  +		  (let ((id (call-next-method)))
  +		    (or (object-for-id *rb-transaction* id)
  +			(let ((node (prb-load (storage (tree *rb-transaction*)) id)))
  +			  (add-opened-node *rb-transaction* node id)
   			  node))))
   
   		(defmethod (setf ,slot) :around (value (node persistent-red-black-node))
   		  (require-rb-transaction)
   		  (add-changed-node *rb-transaction* node)
  -		  ;; (format *standard-output* "Setting slot ~s with value ~s~%" ',slot (location-for-object *rb-transaction* value))
  -		  (call-next-method (location-for-object *rb-transaction* value) node)))))
  +		  (call-next-method (id-for-object *rb-transaction* value) node)))))
     (declare-slot-translation parent)
     (declare-slot-translation left)
     (declare-slot-translation right))
  
positive.code: (defclass red-black-tree-memory-storage (red-black-tree-storage)
    ((objects :initform (make-array 0 :adjustable t) :accessor objects)
     (root :accessor root)
     (next-location :initform 0 :accessor next-location)))
  
  (defclass red-black-tree-file-storage (red-black-tree-storage)
    ((file-name :initarg :file-name :accessor file-name)))
  
negative.code: (defmethod prb-open-storage ((storage red-black-tree-memory-storage))
    )
  
  (defmethod prb-load ((storage red-black-tree-memory-storage) id)
    (aref (objects storage) id))
  
  (defmethod prb-save ((storage red-black-tree-memory-storage) id object)
    (with-slots (objects) storage
      (adjust-array objects (max (+ 1 id) (length objects)))
      (setf (aref objects id) object)))
  
  (defmethod prb-abort ((*rb-transaction* red-black-tree-transaction))
    (setf (new-root *rb-transaction*) nil)
    (clrhash (object-to-id *rb-transaction*))
    (clrhash (id-to-object *rb-transaction*))
    (clrhash (changes *rb-transaction*)))
  
  (defmethod prb-commit ((*rb-transaction* red-black-tree-transaction))  
    (let ((ids (sort (loop for id being the hash-keys of (changes *rb-transaction*) collect id)
  			 #'<))
  	(storage (storage (tree *rb-transaction*))))
      (loop for id in ids
         do (prb-save storage id (object-for-id *rb-transaction* id)))
      (when (new-root *rb-transaction*)
            (setf (root storage) (new-root *rb-transaction*))
        	  (setf (slot-value (tree *rb-transaction*) 'root) (new-root *rb-transaction*)))))