anchor.diff:            (setf tree (insert tree line)))))
       tree))
   
  -(format t "Height of tree is ~a.~%" (height (read-data)))
  +; main program loop
  +(defun main (tree)
  +  (let ((words (parse (read-line))))
  +    (unless (string= (car words) "END")
  +      (dolist (bad (remove-if (lambda (w) (look tree w)) words))
  +        (format t "~a is spelled wrong!~%" bad))
  +      (main tree))))
   
  +(let ((tree (read-data)))
  +  (format t "Loaded the words into a tree with height =  ~a.~%" (height tree))
  +  (main tree))
   
  
positive.code: ; insert a string into a binary search tree and return it
  (defun insert (tree str)
    (if (null tree)
  
negative.code:     0
      (+ 1 (max (height (cadr tree)) (height (caddr tree))))))
  
  ; search the bst returning the string or nil
  (defun look (tree str)
    (cond ((null tree) nil)
          ((string= str (car tree)) str)
          ((string< str (car tree)) (look (cadr tree) str))
          (t (look (caddr tree) str))))
  
  ; load a text file in and add each line to a binary search tree, returning it
  (defun read-data ()
    (let ((tree nil))
  