anchor.diff:      (values name
               qualifiers
               lambda-list)))
  +
  
positive.code:                       (delete-role role sheep)))))
        (delete-reply reply))))
  
  (defun available-replies (sheep)
    (let ((roles (loop for role in (sheep-direct-roles sheep)
                    collect (vector (role-name role) (role-position role)))))
      (remove-duplicates
       (flatten
        (append roles (mapcar 'available-replies (sheep-parents sheep)))))))
  
  (defun add-readers-to-sheep (readers prop-name sheep)
    (loop for reader in readers
       do
         (ensure-message reader :lambda-list '(sheep))
         (ensure-reply reader
                       :lambda-list '(sheep)
                       :participants (list sheep)
                       :function (eval (make-reply-lambda reader
                                                          '(sheep)
                                                          `((property-value sheep ',prop-name)))))))
  
  (defun add-writers-to-sheep (writers prop-name sheep)
    (loop for writer in writers
       do
         (ensure-message writer :lambda-list '(new-value sheep))
         (ensure-reply writer
                       :lambda-list '(new-value sheep)
                       :participants (list =t= sheep)
                       :function (eval (make-reply-lambda writer
                                                          '(new-value sheep)
                                                          `((setf (property-value sheep ',prop-name)
                                                                  new-value)))))))
  
  ;;; macro
  (defmacro defreply (&rest args)
    (multiple-value-bind (name qualifiers specialized-lambda-list docstring body)
        (parse-defreply args)
  
negative.code:                  (sheep-direct-roles sheep) :key 'role-reply)
      t))
  
  ;;;
  ;;; Reply definition
  ;;;
  (defun ensure-reply (name &rest all-keys
                       &key lambda-list participants
                       &allow-other-keys)
  