anchor.diff:  (defmethod next :after ((pattern pstream))
     (incf (slot-value pattern 'number)))
   
  -(defmethod next ((pattern pstream))
  -  (next pattern))
  -
   (defmethod next-n ((pattern pstream) (n number))
     (loop
        :for i :from 0 :below n
  
positive.code:                  :list list
                   :remaining remaining))
  
  (defmethod next ((pattern prand))
    (alexandria:random-elt (slot-value pattern 'list)))
  
  ;;; pfunc
  
  ;; (defclass pfunc (pattern)
  ;;   ((func :initarg :func :accessor :func))
  ;;   (:documentation "A pfunc returns the result of the provided function FUNC."))
  
  (defpattern pfunc (pattern)
    ((func :initarg :func :accessor :func))
  
negative.code:                  :repeats repeats
                   :crr repeats))
  
  (defmethod next ((pattern plazyn-pstream))
    (labels ((maybe-funcall ()
               (when (or (eq :inf (slot-value pattern 'crr))
                         (> (slot-value pattern 'crr) 0))
  