anchor.diff:                                  :left (make-s-diet-node :bottom bottom :top (1- a-val) :left left :right nil)))))))))
   
   (defun diet-height (a-tree)
  -  (if (null a-tree)
  -      0
  -      (+ 1
  -         (diet-height (s-diet-node-right a-tree))
  -         (diet-height (s-diet-node-left a-tree)))))
  +  (cond
  +    ((null a-tree) 0)
  +    ((and (null (s-diet-node-right a-tree)) (null (s-diet-node-left a-tree))) 0)
  +    ((null (s-diet-node-left a-tree)) (1+ (diet-height (s-diet-node-right a-tree))))
  +    ((null (s-diet-node-right a-tree)) (1+ (diet-height (s-diet-node-left a-tree))))
  +    (t 
  +     (1+ (max (diet-height (s-diet-node-right a-tree))
  +               (diet-height (s-diet-node-left a-tree)))))))
   
   (defun diet-balance (a-tree)
     (cond
  
positive.code:           (diet-max-interval (s-diet-node-right a-tree))))))
  
  
  
negative.code:          ;; advance to a left subtree
           ((< a-val bottom)
            (make-s-diet-node :bottom bottom :top top :left (diet-remove a-val left) :right right))
           ;; Higher than a top boundary
           ;; advance to a right subtree
           ((> a-val top)
            (make-s-diet-node :bottom bottom :top top :left left :right (diet-remove a-val right)))
  