anchor.diff:  ;;;; Interface
   
   (defun todo (&optional new-todo task)
  -  "Return the todo from *todo-pathname*, add the new-todo if present to the file."
  +  "Return todo from *todo-pathname*, if new-todo given add to the file."
     (with-todo todo
       (cond ((and new-todo task)
  -	   (multiple-value-bind (at prev subtaskp) (locate task todo)
  -	     (declare (ignorable prev subtaskp))
  -	     (setf (subtask at) (apply 'make-instance 'todo
  -				       :task new-todo
  -				       (when (subtask at)
  -					 (list
  -					  :next (subtask at)))))))
  +	   (destructuring-bind (at prev first) (car (locate task todo))
  +	     (declare (ignorable prev first))
  +	     (if at
  +		 (setf (subtask at) (apply 'make-instance 'todo
  +					   :task new-todo
  +					   (when (subtask at)
  +					     (list
  +					      :next (subtask at)))))
  +		 (format t "~&Task not found -- todo not added.~&"))))
   	  (new-todo
   	   (setf todo (make-instance 'todo :task new-todo :next todo)))
   	  (t
  
positive.code:   (cond ((not (subtask todo))
  	 (task todo))
  	(t
  	 (when-let ((next (next-todo todo)))
  	   (task next)))))
  
  (defun next-todo (todo)
    (when (typep todo 'todo)
      (if (subtask todo)
  	(do ()
  	    ((not (subtask todo)) todo)
  	  (setq todo (subtask todo)))
  	(next todo))))
  
  (defun locate (str todo)
    (labels ((dfs (node prev)
  	     (when (task-prefix-p str node)    
  	       (return-from locate (values node prev)))
  	     (when-let ((subtask (subtask node)))
  	       (multiple-value-bind (node prev) (dfs subtask node)
  		 (when node
  		   (return-from locate (values node prev)))))
  	     (when-let ((next (next node)))
  	       (multiple-value-bind (node prev) (dfs next node)
  		 (when node
  		   (return-from locate (values node prev)))))))
      (dfs todo nil)))
  
  (defvar *todo-pathname* (merge-pathnames
  			 (make-pathname :name "todo" :type "obj")
  
negative.code: ;;;; much-todo.lisp
  ;;; This file operates on a single todo file, defaulted to todo.obj, located
  ;;; within the project's directory. The file is a textual representation of
  ;;; our todo items. We implement convenient ways to view the file,
  ;;; and add and remove items from the file, from the repl. The path to your
  ;;; todo file is configurable with *todo-pathname*
  
  ;;;; preamble
  
  