anchor.diff:                              (transformation
                                 (composition
                                  (inverse (zero-based-transformation (index-space node)))
  -                               (composition
  -                                transformation
  -                                (zero-based-transformation (index-space data-structure))))))
  +                               transformation)))
                           (setf first-visit? nil)
                           (%reference (%source index) (%indices transformation)))
                         (signal 'iterator-exhausted))))
  
positive.code:                (collect
                     `(defun ,name ,lambda-list
                        ,(if variadic?
                             `(hlist* ',name ,@lambda-list)
                             `(hlist ',name ,@lambda-list))))
                 (collect
                     `(defun ,(symbolicate name "?") (x)
                        (and (hconsp x) (eq (hcons-car x) ',name))))))))))
  
  ;;; The grammar of a recipe is:
  
  
negative.code: (defvar *recipe-space* nil)
  
  (defun map-recipes (function data-structure &key (leaf-test #'immediate?))
    "Invoke FUNCTION for every recipe that computes values of DATA-STRUCTURE
     and references data-structures that satisfy LEAF-TEST.
  
     For every recipe, FUNCTION receives the following arguments:
     1. the recipe
  