anchor.diff:             (arguments (argument-variables number-of-arguments)))
          (compile
           nil
  -        `(lambda (backend number-of-buffers process-results process-arguments allocate run)
  +        `(lambda (backend number-of-buffers process-results process-arguments allocate run deallocate)
              (if (< number-of-buffers ,stack-allocation-limit)
                  (lambda (,@results ,@arguments)
                    (let ((storage-vector (make-array ,stack-allocation-limit :initial-element nil)))
  
positive.code:                    (funcall process-results backend storage-vector ,@results)
                     (funcall process-arguments backend storage-vector ,@arguments)
                     (funcall allocate backend storage-vector)
                     (funcall run backend storage-vector)))
                 (lambda (,@results ,@arguments)
                   (let ((storage-vector (make-array number-of-buffers :initial-element nil)))
                     (funcall process-results backend storage-vector ,@results)
                     (funcall process-arguments backend storage-vector ,@arguments)
                     (funcall allocate backend storage-vector)
                     (funcall run backend storage-vector))))))))))
  
  (defun generate-variable (prefix integer)
    (intern
  
negative.code: (defun evaluator-template-arguments (xmas-backend lazy-arrays unknowns)
    (let* ((root-buffers (ir-from-lazy-arrays lazy-arrays))
           (program (buffer-program (first root-buffers))))
      (multiple-value-bind (allocator deallocator) (allocator-and-deallocator program)
        (values
         xmas-backend
         (program-number-of-buffers program)
         (result-processor root-buffers)
         (argument-processor program unknowns)
         allocator
         (runner program root-buffers xmas-backend)
         deallocator))))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  