anchor.diff:  
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;;
  -;;; Allocation
  +;;; Memory Management
   
   (defun map-program-buffer-groups (function program)
     (let ((buffers '()))
  
positive.code:      (map-program-buffer-groups (lambda (buffers) ,@body) ,program)
       ,result))
  
  (defun allocator (program)
    (let* (;; A list of lists of buffers.  Each list of buffers contains at
           ;; most one root buffer, which is then the first buffer of that
           ;; list.
  
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))))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  