(map-invert m)
Returns the map with the vals mapped to the keys.
(defn map-invert [m] (persistent! (reduce-kv (fn [m k v] (assoc! m v k)) (transient {}) m)))