anchor.diff:  (defpattern place (pattern)
     (list
      (repeats :initform :inf)
  -   (current-repeat :state t)
  +   (current-repeat :state t :initform 0)
      (current-repeats-remaining :state t))
     :documentation "Yield each value from LIST in sequence. If the value is a list, the first element of that list is yielded. The second time that sub-list is encountered, its second element will be yielded; the third time, the third element, and so on. REPEATS controls the number of times LIST is repeated.
   
  
positive.code:                    :hi hi
                     :bound-by bound-by)))
  
  (defmethod as-pstream ((paccum paccum))
    (with-slots (operator start step length lo hi bound-by) paccum
      (make-instance 'paccum-pstream
                     :operator (pattern-as-pstream operator)
                     :start (pattern-as-pstream start)
                     :step (pattern-as-pstream step)
                     :length (as-pstream length)
                     :lo (pattern-as-pstream lo)
                     :hi (pattern-as-pstream hi)
                     :bound-by (pattern-as-pstream bound-by))))
  
  (defmethod next ((paccum paccum-pstream))
    (with-slots (operator start step length lo hi bound-by current-value) paccum
      (unless (remaining-p paccum 'length)
  
negative.code: ;; ;=> (1 1 2 2 2 1 2 1 1 3)
  
  See also: `prand', `pxrand', `pwxrand'")
  
  (defmethod next ((pwrand pwrand-pstream))
    (with-slots (list weights) pwrand
  