     1. `path` may appear more than once in an interceptor chain. Progressive narrowing.
     2. if `:effects` contains no `:db` effect, can't graft a value back in.
   "
-  std-interceptors/path)
-
-(def enrich
+  [& args]
+  (apply std-interceptors/path args))
+
+(defn enrich
   "Interceptor factory which runs the given function `f` in the `after handler`
   position.  `f` is called with two arguments: `db` and `v`, and is expected to
   return a modified `db`.

  "
  std-interceptors/debug)

(def path
  "returns an interceptor whose `:before` substitutes the coeffects `:db` with
  a sub-path of `:db`. Within `:after` it grafts the handler's return value
  back into db, at the right path.


     - `f` runs schema validation (reporting any errors found).
     - `f` writes to localstorage."
  [f]
  (std-interceptors/after f))

(defn on-changes
  "An interceptor factory, which is to say, a function which will return an interceptor.

  Returns an interceptor which will observe N paths within `db`, and if any of them
