anchor.diff:                         delayed-action))))
       (request-finish request)))
   
  -(defmethod backend-evaluator :before (backend lazy-arrays unknowns)
  +(defmethod backend-evaluator :before (backend (lazy-arrays list) (unknowns list))
     (dolist (lazy-array lazy-arrays)
       (unless (lazy-array-p lazy-array)
         (error "Not a lazy array: ~S" lazy-array)))
  
positive.code: ;;; developers can rely on the fact that the second argument is always a
  ;;; list of collapsed lazy arrays, i.e., lazy arrays whose shape consists
  ;;; only of ranges with a start of zero and a stride of one.  This function
  ;;; must return one Common Lisp array for each of the supplied lazy arrays.
  (defgeneric backend-compute (backend lazy-arrays))
  
  ;;; Ensures that the supplied REQUEST is computed eventually on BACKEND.
  ;;; This function is invoked exactly once for each request, by the Petalisp
  
negative.code: ;;; the N values obtained by computing the supplied arrays after
  ;;; substituting each unknown in their definition with the supplied
  ;;; argument in the corresponding position.
  (defgeneric backend-evaluator (backend lazy-arrays unknowns)
    ;; We change the argument precedence order so that we can add default
    ;; methods for the case where the second or third argument are null.
    (:argument-precedence-order lazy-arrays unknowns backend))
  
  ;;; Returns whether the lazy arrays's collapsed value can be obtained at
  ;;; O(1) cost, so that we don't have to do any work during COMPUTE or
  