anchor.diff:        var-name
         (error "Invalid var name.")))
   
  -(defun extract-participants (lambda-list)
  -  `(list ,@(mapcar #'extract-participant-sheep lambda-list)))
  -(defun extract-participant-sheep (item)
  -  (if (listp item)
  -      `(confirm-sheep ,(cadr item))
  -      `=t=))
  +(defun extract-participants (specialized-lambda-list)
  +  (let ((plist (analyze-lambda-list specialized-lambda-list)))
  +    `(list ,@(getf plist :participants))))
   
   (defmacro undefmessage (&rest args)
     (multiple-value-bind (name qualifiers lambda-list)
  
positive.code: 	      (&key
  	       (setq state :parsing-key))
  	      (&allow-other-keys
  	       (setq allow-other-keys =t=))
  	      (&aux
  	       (setq state :parsing-aux)))
  	    (case state
  
negative.code:       ,@(if aok '(&allow-other-keys) ())
        ,@(if opts `(&optional ,@opts) ())
        ,@(if auxs `(&aux ,@auxs) ()))))
  
  (defun analyze-lambda-list (lambda-list)
    (labels ((make-keyword (symbol)
  