             (set! end? true)
             (.search this 1)))))
 
-;; TODO treeterator (key-ix->take?)
+;; TODO treeterator (key-ix->needed? , key-ix->produced?)
 
 (defn intersection [iterators]
   (if (> (alength iterators) 1)

            (.up (aget iterators i))
            (.reset (aget iterators i))))
        (.maintain this))))

;; TESTS


      (.next iterator))
    results))

(deftype Join [^:mutable key-ix iterators key-ix->intersection key-ix->iterator->present? ^:mutable end?]
  Object
  (key [this]
       (when (false? end?)
