anchor.diff:  		   (sheep-direct-participations specializer)))
       talent))
   
  +;;;
  +;;; Talent dispatch
  +;;;
  +
  +;; dispatch(selector, args, n)
  +;;  for each index below n
  +;;    position := 0
  +;;    push args[index] on ordering stack
  +;;    while ordering stack is not empty
  +;;      arg := pop ordering stack
  +;;      for each talent-property on arg with selector and index
  +;;        rank[talent-property's talent][index] := position
  +;;        if rank[talent-property's talent] is fully specified
  +;;          if no most specific talent
  +;;             or rank[talent-property's talent] < rank[most specific talent]
  +;;            most specific talent := talent-property's method
  +;;      for each ancestor on arg's hierarchy-list
  +;;        push ancestor on ordering stack
  +;;      position := position + 1
  +;;  return most specific talent-property
  +;; FUCK YOU SLATE
  +
   (defun find-most-specific-talent (selector &rest args)
  +  "Returns the most specific talent using SELECTOR and ARGS."
  +  ;; This shit is bugged to all hell and it's a huge, disgusting algorithm. Fix that shit.
     (let ((n (length args))
   	(most-specific-talent nil)
   	(ordering-stack nil)
  
positive.code:     :accessor talent-pointer)
     documentation))
  
  (defmacro deftalent (name lambda-list &body body)
    `(create-talent
      )
    )
  
  (defun create-talent (&key name lambda-list specializers body)
    (let ((talent (make-instance 'standard-talent
  			       :name name
  			       :lambda-list lambda-list
  
negative.code: 		       for participation in (sheep-direct-participations arg)
  		       when (and (eql selector (name participation))
  				 (eql index (role participation)))
  		       do (pushnew (talent-pointer participation) discovered-talents)
  		       do (setf (elt (standard-talent-rank (talent-pointer participation)) index)
  				position)
  		       if (or (fully-specified-p (standard-talent-rank (talent-pointer participation)))
  