anchor.diff:  				(cond ((eq temp-char #\newline)
   				       ;; we proceed to line+1 : -1, so that the next character read 
   				       ;;  (which will be the leftmost on the line) will be at line+1 : 0
  +				       ;; current-byte was incremented above, so we don't need to touch that here
   				       (incf current-line)
   				       (setq current-column -1))
   				      (t
  
positive.code: 	;; Last-byte, last-line, last-column all refer to the last character of the number 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 the char we're pushing here
  	;; increments them when it is popped then.
  	(local-unread-char char)
  	;;
         terminate-number-with-eof
  
negative.code:     (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: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-line 1) (pre-column -1) (pre-byte 0))
  	  (loop do
  	    (multiple-value-bind (type value 
  				       first-byte first-line first-column
  