       (recur (assoc m (get test-keys i) i) (inc i))
       m)))
 
+(defn transient-sized-map [m n]
+  (loop [m (transient m) i 0]
+    (if (< i n)
+      (recur (assoc! m (get test-keys i) i) (inc i))
+      (persistent! m))))
+
 (defmulti map-bench
   (fn [benchmark _ _] benchmark))
 

  (run-benchmarks benchmarks empty-map data))

(println "Lean Maps")
(let [benchmarks  [:assoc :dissoc :dissoc-fail :hash :equals :equals-fail :worst-equals :sequence :reduce]
      empty-map lem
      data {:small-map (sized-map empty-map small-map-size)
            :medium-map (sized-map empty-map medium-map-size)

                     (range large-map-size)))

(println "Current Maps")
(let [benchmarks  [:assoc :transient-assoc :dissoc :transient-dissoc :dissoc-fail :hash :equals :equals-fail :worst-equals :sequence :reduce]
      empty-map cem
      data {:small-map (sized-map empty-map small-map-size)
            :medium-map (sized-map empty-map medium-map-size)
