anchor.diff:  ;;; The node L is returned
   (defmethod rotate-right-with-child ((node node) (child node))
     (let ((grand-child (right child)))
  -    (setf (left node) grand-child
  -	  (right child) node)
  +    (unlink-left node child)
  +    (unlink-right child grand-child)
  +    (link-left node grand-child)
  +    (link-right child node)
       child))
   
   (defmethod rotate-right-with-child :around
  
positive.code:     (cond ((null sub-tree-parent)
  	   (call-next-method))
  	  ((eq node (left sub-tree-parent))
  	   (setf (left sub-tree-parent) nil)
  	   (call-next-method)
  	   (setf (left sub-tree-parent) child))
  	  (t
  	   (setf (right sub-tree-parent) nil)
  	   (call-next-method)
  	   (setf (right sub-tree-parent) child)))))
  
  (defmethod rotate-left ((tree node))
    (rotate-left-with-child tree (right tree)))
  
negative.code:     (cond ((null sub-tree-parent)
  	   (call-next-method))
  	  ((eq node (left sub-tree-parent))
  	   (unlink-left sub-tree-parent node)
  	   (call-next-method)
  	   (link-left sub-tree-parent child))
  	  (t
  	   (unlink-right sub-tree-parent node)
  	   (call-next-method)
  	   (link-right sub-tree-parent child))))
    child)
  
  (defmethod rotate-right ((tree node))
    (rotate-right-with-child tree (left tree)))
  