anchor.diff:  ;;;; Define a cursor which sweeps , from left ro right, the values of the
   ;;;; given cursors, retunring the values as a list. 
   (defun cursor/sweep (&rest cursors)
  -  (make-instance '%sweep-2-cursor-t
  -			 :cursors cursors))
  +  (when (= 1 (length cursors))
  +    (return-from cursor/sweep (car cursors)))
  +  
  +  ;; ok, build up a chain of %sweep-2 cursors 
  +  (reduce #'(lambda (cursor sweep-2)
  +	      (make-instance '%sweep-2-cursor-t
  +			     :cursors (list cursor sweep-2)))
  +	  cursors
  +	  :from-end t))
  +      
   
   ;;=========================================================================
   
  
positive.code: 
  
  (defmethod print-object ( (range range-cursor-t) stream )
    (format stream "#<RANGE-CURSOR-T at ~A [~A,~A,~A]>"
  	  (value range)
  	  (start range)
  	  (end range)
  	  (step-f range)))
  
  ;;=========================================================================
  
  
negative.code:     :reader cursor-pair)))
  
  (defmethod print-object ( (sweep %sweep-2-cursor-t) stream )
    (format stream "#<%sweep-2 ~A , ~A ~A>"
  	  (first (cursor-pair sweep))
  	  (second (cursor-pair sweep))
  	  (if (done-p sweep) "*" "")))
  
  ;;=========================================================================
  
  