anchor.diff:  
   (defun calculate-rank (rank)
     (reduce #'+ rank))
  +
  +(defun reset-talent-rank (talent)
  +  (loop for item across (standard-talent-rank talent)
  +     do (setf item nil)))
   
   ;dispatch(selector, args, n)
   ;  for each index below n
  
positive.code:     :accessor talent-pointer)
     documentation))
  
  (defun define-talent (&key name lambda-list specializers body)
    (let ((talent (make-instance 'standard-talent
  			       :name name
  			       :lambda-list lambda-list
  
negative.code: (defun find-most-specific-talent (selector &rest args)
    (let ((n (length args))
  	(most-specific-talent nil)
  	(ordering-stack nil)
  	(discovered-talents nil))
      (loop 
         for index upto (1- n)
         for position upto (1- n)
         do (let ((position 0))
  	    (push (elt args index) ordering-stack)
  	    (loop 
  	       while ordering-stack
  	       do (let ((arg (pop ordering-stack)))
  		    (loop
  		       for participation in (sheep-direct-participations arg)
  		       when (and (eql selector (name participation))
  				 (eql index (role participation)))
  		       do (setf (elt (standard-talent-rank (talent-pointer participation)) index)
  