anchor.diff:  
   See also: `pser', `eseq'")
   
  -(defmethod as-pstream ((pseq pseq))
  -  (with-slots (repeats list offset) pseq
  -    (make-instance 'pseq-pstream
  -                   :list (next list)
  -                   :repeats (as-pstream repeats)
  -                   :offset (pattern-as-pstream offset))))
  -
   (defmethod next ((pseq pseq-pstream))
     (with-slots (number list offset) pseq
  -    (when (and (plusp number)
  -               (zerop (mod number (length list))))
  -      (decf-remaining pseq))
  -    (let ((off (next offset)))
  -      (if (and (not (eop-p off))
  -               (remaining-p pseq)
  -               list)
  -          (elt-wrap list (+ off number))
  -          eop))))
  +    (let ((list (next list)))
  +      (when (and (plusp number)
  +                 (zerop (mod number (length list))))
  +        (decf-remaining pseq))
  +      (let ((off (next offset)))
  +        (if (and (not (eop-p off))
  +                 (remaining-p pseq)
  +                 list)
  +            (elt-wrap list (+ off number))
  +            eop)))))
   
   ;;; pser
   
  
positive.code:                      (position-if-not (lambda (i) (eql i (car list))) list))
                   (list)
                   "~s's LIST argument must have at least two non-eql elements." 'pxrand))
  
  (defmethod as-pstream ((pxrand pxrand))
    (with-slots (list length) pxrand
      (make-instance 'pxrand-pstream
                     :list (pattern-as-pstream list)
                     :length (as-pstream length))))
  
  (defmethod next ((pxrand pxrand-pstream))
    (with-slots (list last-result) pxrand
  
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
  