   (transform* [this structure next-fn]
     (i/filter-transform afn structure next-fn)))
 
+(defparamspath
+  ^{:doc "Navigates to the provided val if the structure is nil. Otherwise it stays
+          navigated at the structure."}
+  nil->val
+  [v]
+  (select* [this structure next-fn]
+    (next-fn (if structure structure v)))
+  (transform* [this structure next-fn]
+    (next-fn (if structure structure v))))
+
+(def NIL->SET (nil->val #{}))
+(def NIL->LIST (nil->val '()))
+(def NIL->VECTOR (nil->val []))
+
 (defn collect [& path]
   (pathed-collector [late path]
     (collect-val [this structure]

    (i/srange-transform structure start end next-fn)
    ))


(def BEGINNING (srange 0 0))

(def END (srange-dynamic count count))

(defparamspath
  walker

             paramscollector
             paramspath]]
    )
  (:require [com.rpl.specter.impl :as i]
            [clojure.set :as set])
  )

(defn comp-paths [& paths]
