anchor.diff:  	  (let ((si (segment-info segment-infos i)))
   	    (when info-stream
   	      (format info-stream "~&~S (~S docs)"
  -		      (name si)
  +		      (segment-info-name si)
   		      (doc-count si)))
   	    (let ((reader (make-instance 'segment-reader
   					 :directory (directory si)
  
positive.code: (defmethod delete-files-and-write-undeletable ((self index-writer) files)
    (let ((deletable '()))
      (setf deletable (try-to-delete-files self (read-deletable-files self)))
      (setf deletable (append deletable (try-to-delete-files self files deletable)))
      (write-deletable-files deletable)))
  
  (defmethod delete-files ((self index-writer) filenames dir)
    (dolist (filename filenames)
      (delete-file dir filename)))
  
  (defmethod try-to-delete-files ((self index-writer) filenames deletable)
    (with-slots (directory) self
      (let ((deletions-to-retry '()))
        (dolist (filename filenames)
  	;; FIXME: when can't you delete a file?
  	(delete-file directory filename))
        deletions-to-retry)))
      
  (defmethod read-deletable-files ((self index-writer))
  
negative.code: 	  (when info-stream
  	    (format info-stream "~& into ~S (~S docs)"
  		    merged-name merged-doc-count ))
  	  (loop for i from (- max-segment 1) downto min-segment
  	       do (delete-at segment-infos i))
  	  (add-segment-info segment-infos (make-instance 'segment-info
  