anchor.diff:  ;; pbind
   
   (ok (equal (list :foo :bar :baz)
  -           (cl-patterns::keys (next (pbind :foo 1 :bar 2 :baz (pseq '(1 2 3))))))
  +           (cl-patterns::keys (next (pbind :foo 1 :bar 2 :baz (pseq '(1 2 3) 1)))))
       "pbind returns events that only have the keys specified.")
   
   (ok (= 3
  -       (length (next-upto-n (pbind :foo 1 :bar 2 :baz (pseq '(1 2 3))))))
  +       (length (next-upto-n (pbind :foo 1 :bar 2 :baz (pseq '(1 2 3) 1)))))
       "pbind returns the correct number of events.")
   
   (ok (= 77
  
positive.code: ;; pser
  
  (ok (equal
       (list 1 nil)
       (next-n (pser (list 1 2 3)) 2))
      "pser correctly returns one result as default.")
  
  (ok (equal
       (list 1 2 3 nil nil nil)
       (next-n (pser (list 1 2 3) 3) 6))
      "pser correctly returns three results when its LENGTH is specified.")
  
negative.code: ;; pr
  
  (ok (equal (list 1 1 2 2 3 3 nil)
             (next-n (pr (pseq '(1 2 3) 1) 2) 7))
      "pr returns correct results when its REPEATS is a number.")
  
  (ok (equal (list 1 1 2 2 2 3 3 nil)
             (next-n (pr (pseq '(1 2 3) 1) (lambda (e) (if (= e 2) 3 2))) 8))
      "pr returns correct results when its REPEATS is a function.")
  
  (ok (equal (list 1 1 2 2 3 3 nil nil)
             (next-n (pr (pseq '(1 2 3) 1) (lambda () 2)) 8))
      "pr returns correct results when its REPEATS is a function that doesn't accept arguments.")
  
  (ok (equal (list 3 3 3 3 3 3 3 3 3 3)
  