anchor.diff:  ;;;; the simple parser we have for cursor expressions.
   ;;;; This is a method based upoin the cursor type.
   ;;;; by default we do nothing and just reutnr the original cursor
  +;;;;
  +;;;; rturns (values <packed-tree> <changed-p>)
  +;;;; where changed-p is true iff an actual change (or pakcing) ocurred
   (defmethod %pack-cursor-tree ( cursor &key &allow-other-keys )
     cursor)
   
  
positive.code: 	  (format t "new seq: ~A~%" new-seq)
  	  (format t "copied cursors: ~A~%" new-cursors)
  	  (format t "substituted cursor: ~A~%" sub-cursors)
  	  (%pack-cursor-tree
  	   (apply #'cursor/cat sub-cursors)
  	   :phase (1+ phase)))
  	(if (next-method-p)
  	    (call-next-method cat)
  	    cat))))
  
  
  
  
negative.code: (defmethod %pack-cursor-tree ( (cat cat-cursor-t) &key (phase 0) )
  
    ;; only do so much packing
    (when (> phase 100)
      (format t "limiting phase reached: ~A~%" phase)
      (return-from %pack-cursor-tree (values cat nil)))
  
    ;; check if we only have a single inner cursor, in which case
    ;; we are redundant
  