anchor.diff:    (last-pos nil :type list))
   
   (defun make-lexer (string)
  -  (declare (inline make-lexer-internal)
  -           #-:genera (string string))
  +  (declare #-:genera (string string))
     (make-lexer-internal :str (maybe-coerce-to-simple-string string)
                          :len (length string)))
   
  
positive.code:            (pop (lexer-last-pos lexer))
             nil))))
  
  (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)")))
  
  (declaim (inline start-of-subexpr-p))
  (defun start-of-subexpr-p (lexer)
    (declare #.*standard-optimize-settings*)
  
negative.code:                              (when (looking-at-p lexer #\-)
                                 (push #\- list)
                                 (incf (lexer-pos lexer)))
                               (setq hyphen-seen nil))))
                       ((#\E)
                        ;; if \Q quoting is on we ignore \E,
                        ;; otherwise it's just a plain #\E
  