anchor.diff:  
   
   (defun fold-scene-graph-frames (function initial-value scene-graph)
  -  (fold-tree-map (lambda (accum key value)
  -                   (declare (ignore key))
  -                   (funcall function accum value))
  -                 initial-value
  -                 (scene-graph-frame-map scene-graph)))
  +  (fold-tree-set function initial-value (scene-graph-frames scene-graph)))
   
   (defun scene-mesh-inc (mesh-file)
     "Return the include file for the mesh file"
  
positive.code:   (with-gensyms (fun typevar)
      `(flet ((,fun (,frame ,geometry)
                ,@body))
         (let ((,typevar ,type))
           (do-scene-graph-geometry ((,frame ,geometry) ,scene-graph ,result)
             (when (scene-geometry-isa ,geometry ,typevar)
  
negative.code: ;;; SCENE GRAPH STRUCTURE ;;;
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  
  (defun scene-frame-compare (frame-a frame-b)
    (labels ((name (frame)
               (etypecase frame
                 (string frame)
                 (scene-frame (scene-frame-name frame)))))
      (declare (dynamic-extent #'name))
      (frame-name-compare (name frame-a)
                          (name frame-b))))
  
  (defstruct scene-graph
    (frames (make-tree-set #'scene-frame-compare)))
  
  ;;; Basic Operations ;;;
  
  (defun scene-graph-lookup (scene-graph frame-name)
    "Find a frame"
    (tree-set-find (scene-graph-frames scene-graph)
                   frame-name))
  
  (defun scene-graph-add-frame (scene-graph frame)
    "Add a frame to the scene."
    (make-scene-graph :frames (tree-set-replace (scene-graph-frames scene-graph)
                                                frame)))
  
  (defun scene-graph-remove-frame (scene-graph frame-name)
    "Remove a frame from the scene."
    (make-scene-graph :frames (tree-set-remove (scene-graph-frames scene-graph)
                                               frame-name)))
  
  (defun scene-graph-add-geometry (scene-graph frame-name geometry)
    "Bind collision geometry to a frame in the scene."
  