               (set! ix 0)
               #js [(aget (.-keys node) ix) (aget (.-vals node) ix)]))))
   (seek [this key]
-        (loop []
+        (loop [moved? false]
           (when (false? end?)
             (let [upper (.-upper node)]
               (if (lt upper key)

  (dc/quick-check 1000 transitive-prop)
  (dc/quick-check 1000 anti-symmetric-prop)
  (dc/quick-check 1000 total-prop)
  (dc/quick-check 100 (building-prop gen-assoc))
  (dc/quick-check 100 (building-prop gen-action))
  (dc/quick-check 100 (lookup-prop gen-action))
  (dc/quick-check 100 iterator-prop)


  (defn f []

                      (do
                        (set! node (aget (.-children node) ix))
                        (set! ix 0)
                        (recur true)))))))))))

(defn iterator [tree]
  (loop [node (.-root tree)]
