   (println "Assoc")
   (doseq [[size sample] size->sample]
     (simple-benchmark [] (sized-map m size) sample)))
+
+(defmethod map-bench :transient-assoc [_ m _]
+  (println "Transient Assoc")
+  (doseq [[size sample] size->sample]
+    (simple-benchmark [] (transient-sized-map m size) sample)))
 
 (defmethod map-bench :dissoc [_ _ {:keys [small-map medium-map large-map]}]
   (println "Dissoc")

  (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)

      (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))

