anchor.diff:                                                         (gensym))
                                                :definition-point *current-lambda*))
                               keys))
  +         (aok (make-instance 'lexical-variable
  +                                 :name (gensym "ALLOW-OTHER-KEYS")
  +                                 :definition-point *current-lambda*))
  +         (aok-itr (make-instance 'lexical-variable
  +                                 :name (gensym)
  +                                 :definition-point *current-lambda*))
            (itr (make-instance 'lexical-variable
                                :name (gensym)
                                :definition-point *current-lambda*))
  
positive.code:     (lexical-variable
       (lexical-variable-name var))))
  
  (defun lower-key-arguments* (body rest keys allow-other-keys)
    (let* ((values (mapcar (lambda (x)
                             (make-instance 'lexical-variable
  
negative.code:                      (t body))))
        (ast `(let (,@(mapcar (lambda (x) (list x '(quote nil))) values)
                    ,@(mapcar (lambda (x) (list x '(quote nil))) suppliedp)
                      (,aok (quote ,(if allow-other-keys t nil)))
                      (,itr ,(etypecase rest
                               (special-variable
                                `(call symbol-value (quote ,rest)))
                               (lexical-variable
                                rest))))
                (progn
                  ,@(when (not allow-other-keys)
                      `((tagbody aok-tb
                           (aok-entry
                            (go aok-test aok-tb))
                           (aok-head
                            (progn
                              (if (call eql (call car ,itr) (quote :allow-other-keys))
                                  (progn
                                    (setq ,aok (call car (call cdr ,itr)))
                                    (go aok-out aok-tb))
                                  (quote nil))
                              (setq ,itr (call cddr ,itr))
                              (go aok-test aok-tb)))
                           (aok-test
                            (if ,itr
                                (go aok-head aok-tb)
                                (go aok-out aok-tb)))
                           (aok-out
                            (quote nil)))
                        (setq ,itr ,(etypecase rest
                                      (special-variable
                                       `(call symbol-value (quote ,rest)))
                                      (lexical-variable
                                       rest)))))
                  (tagbody tb
                     (entry
                      (go test-tag tb))
  