   (-reduce [coll f start] (seq-reduce f start coll)))
 
 (extend-protocol IPrintWithWriter
+  NodeSeq
+  (-pr-writer [coll writer opts] (pr-sequential-writer writer pr-writer "(" " " ")" opts coll))
   PersistentHashMap
   (-pr-writer [coll writer opts]
     (print-map coll pr-writer writer opts)))
 
 (comment
   (let [em (.-EMPTY PersistentHashMap)
+        times 12
         hm1 (loop [m em i 0]
-              (if (< i 50)
+              (if (< i times)
                 (recur (assoc m (str "key" i) i) (inc i))
-                m))]
-    (println hm1)
-    [(= (into #{} (vals hm1)) (into #{} (map #(get hm1 (str "key" %)) (range 50))))
-     (= (keys hm1) (map (fn [[k v]] k) hm1))]))+                m))
+        root (.-root hm1)]
+
+    [ (count hm1)  (seq hm1)]
+    #_[(count hm1)
+       (= (into #{} (vals hm1)) (into #{} (range times)))
+       (= (into #{} (vals hm1)) (into #{} (map #(get hm1 (str "key" %)) (range times))))
+       (= (keys hm1) (map (fn [[k v]] k) hm1))
+       (= (into #{} (keys hm1)) (into #{} (map #(str "key" %) (range times))))])
+  )
        (.inode-lookup (node-at arr nodemap bit) (+ shift 5) hash key not-found)
        :else
        not-found)))
  (inode-find [inode shift hash key not-found]
    (let [bit (bitpos hash shift)]
      (cond

                            create-inode-seq create-array-node-seq create-node
                            mask bitmap-indexed-node-index bitpos]))

(declare NodeSeq HashCollisionNode TransientHashMap PersistentHashMap)

(deftype Box [^:mutable added ^:mutable modified])

