anchor.diff:    msg-info-fast-mf-p)
   
   (defun arg-info-valid-p (arg-info)
  -  (not (null (arg-info-number-optional arg-info))))
  +  (numberp (arg-info-number-optional arg-info)))
   
   (defun arg-info-applyp (arg-info)
  -  (or (plusp (the fixnum (arg-info-number-optional arg-info)))
  +  (or (plusp (arg-info-number-optional arg-info))
         (arg-info-key/rest-p arg-info)))
   
   (defun arg-info-number-required (arg-info)
  -  (length (the simple-array (arg-info-metatypes arg-info))))
  +  (length (arg-info-metatypes arg-info)))
   
   (defun arg-info-nkeys (arg-info)
     (count-if (fun (not (eq _ t))) (arg-info-metatypes arg-info)))
  
positive.code:                (error "encountered the non-standard lambda list keyword ~S"
                        x)))
              (ecase state
                (required  (incf (the fixnum nrequired)))
                (optional  (incf (the fixnum noptional)))
                (key       (push (parse-key-arg x) keywords)
                           (push x keyword-parameters))
                (rest      (incf (the fixnum nrest))))))
        (when (and restp (zerop nrest))
          (error "Error in lambda-list:~%~
                  After &REST, a DEFMESSAGE lambda-list ~
  
negative.code:           (let ((msg-nreq (arg-info-number-required arg-info))
                  (msg-nopt (arg-info-number-optional arg-info))
                  (msg-key/rest-p (arg-info-key/rest-p arg-info)))
              (unless (and (= nreq msg-nreq)
                           (= nopt msg-nopt)
                           (eq (or keysp restp) msg-key/rest-p))
                (error 'reply-lambda-list-conflict
                       :lambda-list lambda-list :message msg))))
  