anchor.diff:    (loop while (is-alphanumeric (peek scanner)) do (advance scanner))
     (add-token scanner
                (gethash
  -              (print (subseq (source scanner) (start scanner) (current scanner)))
  +              (subseq (source scanner) (start scanner) (current scanner))
                 +keywords+
                 :identifier)))
  
positive.code:     `(case (progn
               ,@input)
         ,@(loop for (char token-type) in tokens
              collect `(,char
                        (add-token ,scanner ,token-type)))
         (otherwise (cerror "Continue scanning."
                            'unexpected-character-error
                            :line (line ,scanner)
  
negative.code: 
  (defparameter +keywords+
    #.(let ((keywords-alist
              '(("and" . :and)
                ("class" . :class)
                ("else" . :else)
                ("false" . :false)
                ("for" . :for)
                ("fun" . :fun)
                ("if" . :if)
                ("nil" . :nil)
                ("or" . :or)
                ("print" . :print)
                ("return" . :return)
                ("super" . :super)
                ("this" . :this)
                ("true" . :true)
                ("var" . :var)
                ("while" . :while))))
        (alexandria:alist-hash-table keywords-alist
                                     :test #'equal
                                     :size (length keywords-alist))))
  