anchor.diff:  		 (+ key-pos 2)))
   	list)))
   
  -(defun cursor/filter (&key filter-func 
  +(defun cursor/filter (&key
  +			filter-func 
   			cursors 
   			(trans-func #'list))
     (make-instance 'filter-cursor-t
  
positive.code: 
  ;;=========================================================================
  
  
  (defmethod value ( (tc transform-cursor-t))
    (when (done-p tc)
      (error 'cursor-finished-condition
  	   "Cursor ~A is finished but you tried to access it's (value...)"
  	   :cursor tc))
    (let ((original-values
  	  (mapcar #'(lambda (cursor default)
  		      (if (done-p cursor)
  			  default
  			  (value cursor)))
  		  (original-cursors tc)
  		  (default-values tc))))
      (apply (transform-f tc) original-values)))
  
  
  ;;=========================================================================
  
  
negative.code: 
  ;;=========================================================================
  
  (defmethod clone ( (filter filter-cursor-t) )
    (let ((copy (call-next-method)))
      (setf (slot-value copy 'filter-f)
  	  (filter-f filter))
      copy))   
  
  ;;=========================================================================
  
  (defmethod done-p ( (filter filter-cursor-t) )
    (if (call-next-method)
        (return-from done-p t))
    (do
     ()
     ((or
       (call-next-method filter)
       (funcall (filter-f filter) (%transform/raw-value filter)))
      (call-next-method))
      (mapcar #'next
  	    (original-cursors filter))))
  
      
  
  
  ;;=========================================================================
  
  (defmethod value ( (filter filter-cursor-t) )
    (do
     ()
  