anchor.diff:    (do ((c (peek-char nil in) (peek-char nil in))
          (in-escape nil)
          (garbage-string (make-array 8 :fill-pointer 0 :adjustable t :element-type 'character)))
  -      ((and (not in-escape) (eql c #\>)) (list :type :garbage :value garbage-string))
  +      ((and (not in-escape)
  +	    (eql c #\>))
  +       (progn
  +	 (read-char in nil) ; Skip the ">"
  +	 (list :type :garbage :value garbage-string)))
       ;; If we're in an escape
       (if in-escape
   	;; Just add the character and clear the in-escape flag
  
positive.code: 
      ;; Advance to the next character
      (read-char in nil)))
  
negative.code: ;;; Get the next token from the stream
  (defun next-token (in)
    (let ((c (read-char in nil)))
      (case c
  	(#\{ (list :type :start-group))
  	(#\} (list :type :end-group))
  	(#\, (list :type :comma))
  	(#\< (read-garbage in))
  	((#\Space #\Tab #\Newline) (list :type :ws))
  	((nil) nil)
  	(otherwise (error "unexpected character: '~a'" c)))))
  
  ;;; Tokenize a stream until the end
  (defun tokenize (in)
    (do ((tok (next-token in) (next-token in))
         (tokens nil))
  