anchor.diff:                             (values
                               (cl:append (take start sequence)
                                          (nreverse subseqs))
  -                            i))))
  +                            (if (and remove-empty-subseqs
  +                                     count
  +                                     (zerop count))
  +                                (1+ i)
  +                                i)))))
           (apply #'split-sequence:split-sequence-if pred (coerce sequence 'list) args))))
   
   
  
positive.code: (defgeneric abstract-split-sequence-if (pred sequence &key start end from-end count remove-empty-subseqs key)
    (:method (pred (sequence abstract-list) &rest args &key (start 0) end from-end count remove-empty-subseqs (key #'identity))
      (if (and (not from-end)
               (not end)
               count)
          (loop with subseqs = '()
                with buf = '()
                with seq = (drop start sequence)
                with i = 0
                until (or (zerop count)
                          (emptyp seq))
                for x = (first seq)
                when (funcall pred (funcall key x))
                  do (when (or (null remove-empty-subseqs) buf)
                       (push (nreverse buf) subseqs)
                       (decf count)
                       (setq buf nil))
                else
                  do (push x buf)
  
negative.code:   (:method (sequence1 (sequence2 abstract-list) &rest args &key from-end (test #'eql) (start1 0) end1 (start2 0) end2 (key #'identity))
      (when (typep sequence1 'abstract-sequence)
        (setq sequence1 (coerce sequence1 'list)))
      (if from-end
          (apply #'cl:search sequence1 (coerce sequence2 'list) args)
          (progn
            (setq sequence1 (subseq sequence1 start1 end1))
  