anchor.diff:  
   (defmethod add-position ((self document-writer) field text position tv-offset-info)
     (with-slots (term-buffer posting-table) self
  -    (print term-buffer)
       (set-term term-buffer field text)
       (let ((posting (gethash term-buffer posting-table)))
         (if posting
  
positive.code: 			   (when tv-writer
  			     (close-field tv-writer)))))
  		   (when (and tv-writer (field-open-p tv-writer))
  		     (add-term-to-term-vectors-writer (text (term posting))
  						      posting-freq
  						      (positions posting)
  						      (offsets posting))))))
  	     (when tv-writer
  	       (close-document tv-writer))))
        (progn
  	;; FIXME raise some exceptions somewhere?
  	(close freq)
  	(close prox)
  	(close tis-writer)
  	(close tv-writer)))))
  
  (defmethod write-norms ((self document-writer) segment)
    (with-slots (directory field-infos field-boosts similarity field-lengths) self
      (dosequence (fi field-infos :index i)
        (when (and (field-indexed-p fi) (not (field-omit-norms-p fi)))
  	(let ((norm (* (aref field-boosts i)
  		       (length-norm similarity (name fi) (aref field-lengths i))))
  	      (norms (open-segment-file directory segment (format nil ".f~S" i))))
  	  (unwind-protect
  	       (write-byte norms (encode-norm norm))
  	    (close norms)))))))
  
  (defclass posting ()
    ((term :initarg term :reader term)
     (freq :initform 1 :accessor freq)
     (positions :initarg :positions :reader positions)
     (offsets :initarg :offsets :reader offsets)))
  
negative.code: 					   max-field-length)
  				   (return))))
  			     (when last-token
  			       (incf offset (+ (token-end last-token) 1))))
  			(close stream)))))
  	    (setf (aref field-lengths field-number) length)
  	    (setf (aref field-positions field-number) position)
  