   (map-vals-transform [structure next-fn]
     (reduce-kv
       (fn [m k v]
-        (assoc m k (next-fn v)))
+        (let [newv (next-fn v)]
+          (if (identical? newv i/NONE)
+            m
+            (assoc m k newv))))
       (empty structure)
       structure)))
 

      i/NONE))
  (transform* [this vals structure next-fn]
   (if (contains? structure k)
     (assoc structure k (next-fn vals (get structure k)))
     structure)))

(defn- non-transient-map-all-transform [structure next-fn empty-map]
  (reduce-kv
    (fn [m k v]
      (let [newkv (next-fn [k v])]
        (if (identical? newkv i/NONE)
          m
          (assoc m (nth newkv 0) (nth newkv 1)))))

    empty-map
    structure))
