anchor.diff:                          (minusp current-value))
                      nil
                      (funcall (if wrap-at-end #'nth-wrap #'nth) current-value list))))
  -      (when (not (slot-boundp pattern 'current-repeats-remaining))
  +      (unless (slot-boundp pattern 'current-repeats-remaining)
           (setf current-repeats-remaining (next repeats)))
         (when (value-remaining-p current-repeats-remaining)
           (if (value-remaining-p remaining-current-segment)
  
positive.code: (defmethod next ((pfindur pfindur-pstream)) ;; FIX: make this affect the dur AND delta properly.
    (with-slots (pattern dur tolerance current-elapsed) pfindur
      (alexandria:when-let ((n-event (next pattern)))
        (when (or (eq :inf dur)
                  (< (if (= 0 tolerance)
                         current-elapsed
                         (round-up current-elapsed tolerance))
                     dur))
          (let ((new-elapsed (+ (event-value n-event :delta) current-elapsed)))
            (prog1
                (if (and (not (eq :inf dur))
                         (> (if (= 0 tolerance)
                                new-elapsed
                                (round-up new-elapsed tolerance))
  
negative.code:        :for number :from 0 :upto n
         :for val = (next pstream)
         :while (and (not (null val))
                     (or (eql :inf n)
                         (< number n)))
         :append (list val))))
  
  