     (reduce-kv (fn [m k v] (assoc m (keyword (str *ns*) (name k)) v)) {} data)
     (setval [MAP-KEYS NAMESPACE] (str *ns*) data)
     ))
+
+(defnav walker-old [afn]
+  (select* [this structure next-fn]
+    (i/walk-select afn next-fn structure))
+  (transform* [this structure next-fn]
+    (i/walk-until afn next-fn structure)))
+
+(let [data {:a [1 2 {:c '(3 4) :d {:e [1 2 3] 7 8 9 10}}]}]
+  (run-benchmark "walker vs. clojure.walk version" 150000
+    (transform (walker number?) inc data)
+    (transform (walker-old number?) inc data)
+    ))

(ns com.rpl.specter.benchmarks
  (:use [com.rpl.specter]
        [com.rpl.specter.transients]
        [com.rpl.specter.impl :only [benchmark]])
  (:require [clojure.walk :as walk]))


;; run via `lein repl` with `(load-file "scripts/benchmarks.clj")`

    (select-any [(keypath :a) (keypath :b) (keypath :c)] data)))


(let [data {:a {:b {:c 1}}}]
  (run-benchmark "set value in nested map" 2500000
    (assoc-in data [:a :b :c] 1)
