anchor.diff:                       (= nreq (arg-info-number-required arg-info))
                        (= nopt (arg-info-number-optional arg-info))
                        (eq (or keysp restp) (arg-info-key/rest-p arg-info)))
  -          (error 'reply-lambda-list-conflict :lambda-list lambda-list :message msg))
  +          (error 'reply-lambda-list-conflict :lambda-list lambda-list :message message))
           (setf (arg-info-lambda-list arg-info) (if lambda-list-p
                                                     lambda-list
                                                     (create-msg-lambda-list lambda-list))
  
positive.code:               ((not (= nopt msg-nopt))
                 (lose "the reply has ~A optional arguments than the message."
                       (comparison-description nopt msg-nopt)))
                ((neq (or keysp restp) msg-key/rest-p)
                 (lose "the reply and message differ in whether they accept~_~
                        &REST or &KEY arguments."))
                ((not (and (atom msg-keywords)
  
negative.code: ;; This pair just pretties up the options during macro expansion
  (defmacro defmessage (name lambda-list &rest options)
    `(progn
       (check-message-lambda-list ',lambda-list)
       (ensure-message ',name :lambda-list ',lambda-list
                       ,@(canonize-message-options options))))
  
  