anchor.diff:        (bang . "!")
         (in . "in"))))
   
  +(defun make-reserved (string)
  +  (make-instance (car (find string *reserved-words* :test #'equal :key #'cdr))))
  +
   (defmacro define-reserved-words ()
     `(progn ,@(loop :for pair :across *reserved-words* :collect
                  `(define-literal-token ,(car pair) ,(cdr pair)))))
  
positive.code:   (find char '(#\space #\tab #\linefeed #\return)))
  
  (defun token-iterator (stream)
    (let (hit-eof)
      (make-iterator ()
        (when hit-eof
          (stop))
        (let ((token (next-token stream)))
          (when (typep token 'eof)
            (setf hit-eof t))
          (emit token)))))
  
  (defgeneric tokenize (source))
  
  
negative.code:                        ((is-operator)
                          (make-operator word))
  
                         ((reserved-p word)
                          (make-reserved word))
  
                         ((and (not (find-if-not #'digit-char-p word))
                               (or (equal #\< next-char) (equal #\> next-char)))
                          (make-instance 'io-number :value word))
  
                         (t
                          (make-instance 'a-word :value word))))))
  
        (macrolet ((again () '(return-from again)))
  
  