anchor.diff:            (find-handler (disabled-handlers hook))))
         found-handler)))
   
  -;; TODO: What do we return when hook has no handler?  How do we distinguish
  -;; between a NIL return value and no handler?
   (defmethod run-hook ((hook hook))
     (funcall (combination hook) hook))
   
  
positive.code:           always res)
      (nreverse result)))
  
  (defmethod combine-hook-until-success ((hook hook) &rest args)
    "Return the value of the first non-nil result.
  Handlers after the successful one are not run.
  This is an acceptable `combination' for `hook'."
  
negative.code: (defmethod combine-composed-hook ((hook hook) &rest args)
    "Return the result of the composition of the HOOK handlers on ARGS, from
  oldest to youngest.
  Without handler, return ARGS as values.
  This is an acceptable `combination' for `hook'."
    (let ((fn-list (mapcar #'fn (handlers hook))))
      (if fn-list
          (apply (apply #'alexandria:compose fn-list) args)
          (values-list args))))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  (defun add-hook-internal (hook handler &key append)
  