 
 (defn transformed
   "Navigates to a view of the current value by transforming it with the
-   specified selector and update-fn."
+   specified selector and update-fn.
+
+   The input path may be parameterized, in which case the result of transformed
+   will be parameterized in the order of which the parameterized selectors
+   were declared."
   [path update-fn]
   (fixed-pathed-path [late path]
     (select* [this structure next-fn]


;; Helpers for defining selectors and collectors with late-bound params

(def bind-params* i/bind-params*)

(defmacro paramspath [params & impls]
  (let [num-params (count params)
        retrieve-params (i/make-param-retrievers params)]
    (i/paramspath* retrieve-params num-params impls)
    ))

(defmacro paramscollector [params impl]
  (let [num-params (count params)
        retrieve-params (i/make-param-retrievers params)]
    (i/paramscollector* retrieve-params num-params impl)

   Tests the structure if selecting with cond-path returns anything.
   If so, it uses the following selector for this portion of the navigation.
   Otherwise, it tries the next cond-path. If nothing matches, then the structure
   is not selected.

   The input paths may be parameterized, in which case the result of cond-path
   will be parameterized in the order of which the parameterized selectors
   were declared."
  [& conds]
  (variable-pathed-path [compiled-paths conds]
    (select* [this structure next-fn]
