anchor.diff:        ;; advance lexer beyond "<name>" part
         (setf (lexer-pos lexer) (1+ end-name))
         name)))
  +
  +(declaim (inline unget-token))
  +(defun unget-token (lexer)
  +  (declare #.*standard-optimize-settings*)
  +  "Moves the lexer back to the last position stored in the LAST-POS stack."
  +  (if (lexer-last-pos lexer)
  +    (setf (lexer-pos lexer)
  +            (pop (lexer-last-pos lexer)))
  +    (error "No token to unget \(this should not happen)")))
   
   (defun get-token (lexer)
     (declare #.*standard-optimize-settings*)
  
positive.code:   (last-pos nil :type list))
  
  (defun make-lexer (string)
    (declare (inline make-lexer-internal)
             #-:genera (string string))
    (make-lexer-internal :str (maybe-coerce-to-simple-string string)
                         :len (length string)))
  
  
negative.code:            (pop (lexer-last-pos lexer))
             nil))))
  
  (declaim (inline start-of-subexpr-p))
  (defun start-of-subexpr-p (lexer)
    (declare #.*standard-optimize-settings*)
  