protocolsince v0.0-1211 clojure.lang/IKVReduceEdit
implemented for ObjMap PersistentArrayMap PersistentHashMap PersistentTreeMap PersistentVector Subvec

Source docstring:
Protocol for associative types that can reduce themselves
  via a function of key and val. Called by cljs.core/reduce-kv.
Source code @ clojurescript:src/main/cljs/cljs/core.cljs
(defprotocol IKVReduce
  (-kv-reduce [coll f init]
    "Reduces an associative collection and returns the result. f should be
     a function that takes three arguments."))