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

  (select* [this vals structure next-fn]
    (next-fn vals (get structure key)))
  (transform* [this vals structure next-fn]
    (assoc structure key (next-fn vals (get structure key)))))


(defrichnav


  #?(:clj clojure.lang.PersistentVector :cljs cljs.core/PersistentVector)
  (all-transform [structure next-fn]
    (into []
      (comp (map next-fn)
            (filter #(-> % (identical? i/NONE) not)))
      structure))

  #?(:clj clojure.lang.PersistentArrayMap)
  #?(:clj
