anchor.diff:  ;;; TODO:
   ;; * make sure all patterns are given parents
   
  -(plan 96)
  +(plan 93)
   
   ;;; utility
   
  
positive.code: ;; pr
  
  (ok (equal (list 1 1 2 2 3 3 nil)
             (next-n (pr (pseq '(1 2 3)) 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)) (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)) (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)
  
negative.code: ;; pbind
  
  (ok (equal (list :foo :bar :baz)
             (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) 1)))))
      "pbind returns the correct number of events.")
  
  (ok (= 77
  