anchor.diff:  
   (defun ensure-operation (method)
     "Add METHOD to the PERFORM-OPERATION generic function."
  -  (let ((gf (ensure-generic-function 'perform-operation)))
  +  (let ((gf #'perform-operation))
       (add-method gf method)))
   
   (defmacro define-operation ((task-var task-class) (&rest task-inputs) &body body &environment env)
  
positive.code: 
  See DEFINE-OPERATION on how to use this function correctly.
  "
    (let ((gf (ensure-generic-function 'perform-operation)))
      (closer-mop:make-method-lambda
       (ensure-generic-function 'perform-operation)
       (closer-mop:class-prototype (closer-mop:generic-function-method-class gf))
       `(lambda (,task-var ,chain-var)
  	(destructuring-bind ,task-input-vars
  
negative.code: See the macro DEFINE-OPERATION on how to use this function correctly."
    (declare (type task-class task-class))
    (assert (closer-mop:subclassp task-class (find-class 'task)))
    (let ((gf #'perform-operation))
      (apply #'make-instance (closer-mop:generic-function-method-class gf)
  	   :specializers (list task-class (find-class t))
  	   :lambda-list `(,task-var ,chain-var)
  