anchor.diff:      (setf (slot-value pstream 'remaining) (slot-value pattern 'remaining))
       pstream))
   
  -(defmethod pstream-nth (n (pstream pstream))
  +(defmethod pstream-nth (n (pstream pstream)) ;; FIX: should this automatically "peek" at future values when the pstream hasn't advanced to the specified index yet? probably not...
     (nth-wrap n (slot-value pstream 'history)))
   
   ;;; pbind
  
positive.code: 
  (defun next-upto-n (pattern &optional (n *max-pattern-yield-length*))
    "Return a list of up to N values of PATTERN. If PATTERN ends after less than N values, then only that many values will be returned."
    (let ((pstream (as-pstream pattern))
          (results (list))
          (number 0))
      (block loop
  
negative.code:   ((number :initform 0)
     (pattern-stack :initform (list))
     (next-time :initarg :next-time :initform 0)
     (history :initarg :history :initform (list))
     (nodes :initarg :nodes :initform (list)))
    (:documentation "Pattern stream class."))
  
  (defun remainingp (pattern &optional (key 'remaining))
  