       (set! moving-key-ix pinned-key-ix)
       (set! pinned-key-ix (- pinned-key-ix 1))
       (set! pinned-key (aget seek-key pinned-key-ix))
-      (aset seek-key moving-key-ix least)))
+      (aset seek-key moving-key-ix least))
+  (mark [this]
+        (.mark iterator))
+  (reset [this]
+         (.reset iterator)))
 
 (defn trieterator [tree]
   (let [it (iterator tree)]

      (.push results (.key iterator))
      (.next iterator))
    results))

;; TESTS



;; NOTE iterators are not write-safe

(deftype Iterator [max-keys ^:mutable node ^:mutable ix marked-nodes marked-ixes ^:mutable end?]
  Object
  (key [this]
       (when (false? end?)
