(IndexedSeqIterator. arr i)
(deftype IndexedSeqIterator [arr ^:mutable i] Object (hasNext [_] (< i (alength arr))) (next [_] (let [ret (aget arr i)] (set! i (inc i)) ret)))