      - call `f` with the values extracted from [:a] [:b]
      - assoc the return value from `f` into the path  [:c]
   "
-  std-interceptors/on-changes)
+  [f out-path & in-paths]
+  (apply std-interceptors/on-changes (into [f out-path] in-paths)))
 
 
 (defn reg-global-interceptor

    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
  "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`.


     - `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
