anchor.diff:    ((number :initform 0)
      (pattern-stack :initform (list))
      (next-time :initarg :next-time :initform 0)
  -   (history :initform (list))
  -   (nodes :initform (list)))
  +   (history :initarg :history :initform (list))
  +   (nodes :initarg :nodes :initform (list)))
     (:documentation "Pattern stream class."))
   
   (defun remainingp (pattern &optional (key 'remaining))
  
positive.code: 
  (defmethod next ((pattern phistory-pstream))
    (with-slots (pattern step-pattern) pattern
      (next pattern)
      (pstream-nth (next step-pattern) pattern)))
  
  ;;; pscratch
  ;;
  
negative.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 (if (typep pattern 'pstream)
                       pattern
                       (as-pstream pattern)))
          (results (list))
          (number 0))
      (block loop
  