anchor.diff:     (current-repeats-remaining :state t))
     "prand returns a random value from LIST, returning a total of LENGTH values.
   
  -Example: (next-n (prand '(1 2 3) 5) 6) ;=> (3 2 2 1 1 NIL)")
  +Example: (next-n (prand '(1 2 3) 5) 6) ;=> (3 2 2 1 1 NIL)
  +
  +See also: `pxrand', `pwrand', `pwxrand'")
   
   (defmethod as-pstream ((pattern prand))
     (with-slots (list length) pattern
  
positive.code:    (length :default :inf)
     (last-result :state t :initform nil)
     (current-repeats-remaining :state t))
    "pxrand returns a random value from LIST that is not equal to the last result, returning a total of LENGTH values."
    (assert (> (length (remove-duplicates list)) 1) (list)))
  
  (defmethod as-pstream ((pattern pxrand))
  
negative.code:     (make-instance 'pn-pstream
                     :remaining remaining
                     :pattern (slot-value pattern 'pattern)
                     :repeats (next repeats)
                     :current-pstream (as-pstream (slot-value pattern 'pattern)))))
  
  (defmethod next ((pattern pn-pstream))
  