anchor.diff:    (add-changed-object *rb-transaction* node)
     (let ((data (rb-make-data (tree *rb-transaction*) :contents value)))
       (call-next-method data node)))
  +
  +(defmethod contents :around ((data persistent-red-black-data))
  +  (require-rb-transaction)
  +  (prb-load-data (tree *rb-transaction*) data)
  +  (call-next-method))
   
   (defmethod parent ((node persistent-red-black-node))
     (require-rb-transaction)
  
positive.code:     (prb-stash-node tree (location left) (location right) color key (when data (location data)))))
  
  (defmethod prb-load-data ((tree persistent-red-black-tree) (data persistent-red-black-data))
    (setf (contents data) (prb-fetch-data tree (location data))))
  
  (defmethod prb-save-data ((tree persistent-red-black-tree) (data persistent-red-black-data))
    (prb-stash-data tree (contents data)))
  
negative.code: ;; types
  ;; ---------------------------------------------------------------------------------------------------------------------
  
  (deftype object-unloaded () `(eql :unloaded))
  
  (deftype object-loaded () `(or (eql :loaded)
  			     (eql :changed)
  			     (eql :new)))
  
  (deftype node-state () `(or object-unloaded
  			   object-loaded))
  
  (defclass persistent-red-black-object ()
    ((state :type node-state :initform :new :initarg :state :accessor state) 
  