       (Intersection. (into-array (sort-by #(.key %) compare-keys iterators)) false))
     (aget iterators 0)))
 
+(defn iter-seq [iterator]
+  (let [results #js []]
+    (while (false? (.-end? iterator))
+      (.push results (.key iterator))
+      (.next iterator))
+    results))
+
 ;; TESTS
 
 (def gen-key

                 actions (gen/vector gen-action)
                 movements (gen/vector gen-movement)]
                (run-iterator-prop min-keys actions movements)))

(comment
  (dc/quick-check 1000 least-prop)

  (dc/quick-check 500 (lookup-prop gen-action))
  (dc/quick-check 500 iterator-prop)
  ;; cljs.core.pr_str(cemerick.double_check.quick_check(1000, aurora.btree.iterator_prop)
  (dc/quick-check 100 intersection-prop)
  ;; cljs.core.pr_str(cemerick.double_check.quick_check(1000, aurora.btree.intersection_prop))


  (defn f []
