anchor.diff:      (let ((tokens nil))
         (with-open-file (stream file) 
   	(let ((ps-stream (make-pseudo-stream :unread-chars nil :stream stream))
  -	      ;; The upper-left corner of the file is considered 1:0 (line 1, column 0)
  -	      ;; so the character one to the left of that is 1:-1 (line 1, column -1).
  +	      ;; The upper-left corner of the file is considered 1:0:1 (line 1, column 0, byte 1)
  +	      ;; so the character one to the left of that is 1:-1:0 (line 1, column -1, byte 0).
   	      ;; So we are at 1:-1 before we read the first character.
  -	      (pre-byte 0) (pre-line 1) (pre-column -1))
  +	      (pre-line 1) (pre-column -1) (pre-byte 0))
   	  (loop do
   	    (multiple-value-bind (type value 
   				       first-byte first-line first-column
  
positive.code: 			 (return-values :EOF nil) 
  			 () 
  			 (go start-extended-comment))
  	;;
  	(look-for-ad-hoc-tokens char char-code)
  	;; 
  	(case (svref whitespace-table char-code)
  
negative.code: 	;; Last-byte, last-line, last-column all refer to the last character of the symbol we've been scanning.
  	;; Char is the first character past that position.  
  	;; We put char back into the stream, and tell our caller the last-xxx values.
  	;; Those become the initial values in the next call here, and they are 
  	;; incremented when the char we're pushing here is then popped.
  	(local-unread-char char)
  	;;
         terminate-word-symbol-with-eof
  