anchor.diff:    properties ;;plist
     methods )
   
  +(defun validate-defprotocol-option (list)
  +  (and (member (first list) '(:eponymous-method
  +			      :eponymous-generic
  +			      :require
  +			      :base-method)))
  +  ;;TODO: validate option bodies
  +  t
  +  )
  +
   (defun parse-protocol-body (methods)
     (let ((body (make-protocol-body
   	       :properties (list)
  
positive.code:        for list in methods
         for thing = (first list)
         do (if (keywordp thing)
  	      (setf (getf (protocol-body-properties body) thing)
  		    (rest list))
  	      (push list (protocol-body-methods body))))
      body))
  
  
negative.code:       (setf
         ;;wether to generate punning methods
         (protocol-includes-method-pun protocol)
         (getf properties :eponymous-method)
  
         ;; including methods implies including
         ;; a generic
  