anchor.diff:  (defmethod split ((tree tree) old-child new-child-1 new-child-2)
     (setf (contents tree)
   	(make-instance (2-node-class tree)
  +	  :tree tree
   	  :parent tree
   	  :left new-child-1
   	  :right new-child-2)))
  
positive.code:   (setf (contents tree) new-child))
  
  (defmethod split ((node 2-node) old-child new-child-1 new-child-2)
    (let ((parent (parent node)))
      (replace parent
  	     node
  	     (if (eq old-child (left node))
  		 (make-instance (3-node-class (tree node))
  		   :parent parent
  		   :left new-child-1
  		   :middle new-child-2
  		   :right (right node))
  		 (make-instance (3-node-class (tree node))
  		   :parent parent
  		   :left (left node)
  		   :middle new-child-1
  		   :right new-child-2)))))
  
  (defmethod split ((node 3-node) old-child new-child-1 new-child-2)
    (let ((parent (parent node)))
      (cond ((eq old-child (left node))
  	   (split (parent node)
  		  node
  		  (make-instance (2-node-class (tree node))
  		    :parent parent
  		    :left new-child-1
  		    :right new-child-2)
  		  (make-instance (2-node-class (tree node))
  		    :parent parent
  		    :left (middle node)
  		    :right (right node))))
  
negative.code: 	   (split (parent node)
  		  node
  		  (make-instance (2-node-class (tree node))
  		    :tree tree
  		    :parent parent
  		    :left (left node)
  		    :right (middle node))
  		  (make-instance (2-node-class (tree node))
  		    :tree tree
  		    :parent parent
  		    :left new-child-1
  		    :right new-child-2))))))
  