anchor.diff:  				(task-input-function-performed-classes function-b))))
   
   (defun ensure-task-input-function (task-input target-class performed-classes function &key documentation)
  -  (declare (type task-input task-input)
  -	   (type task-class target-class))
     (setf documentation (or documentation ""))
  +  (assert (typep task-input 'task-input))
  +  (assert (and (closer-mop:classp target-class)
  +	       (closer-mop:subclassp target-class (find-class 'task))))
   
     ;; Make sure PERFORMED-CLASSES contains valid values.
     (assert (every #'(lambda (x)
  
positive.code:   (:metaclass closer-mop:funcallable-standard-class))
  
  (defun task-class-equal (class-a class-b)
    (declare (type task-class class-a class-b))
    (equal class-a class-b))
  
  (defun performed-classes-equal (classes-a classes-b)
  
negative.code: 					      :documentation (or documentation ""))))
  
  (defun task-input-equal (input-a input-b)
    (assert (typep input-a 'task-input))
    (assert (typep input-b 'task-input))
    (equal input-a input-b))
  
  (defmacro define-task-input (name &rest options)
  