This issue is waiting a patch? https://clojure.atlassian.net/browse/CLJ-2426 If yes, where should "via-metadata" should be? Is between "interface" and "subclasses" a good place?
(defn find-protocol-impl [protocol x]
(if (instance? (:on-interface protocol) x)
x
(or
(when (:extend-via-metadata protocol)
...find-via-metadata...)
(let [c (class x)
impl #(get (:impls protocol) %)]
...find-via-class-hierarchy....))))
I can't find in "clojure internals" where it "calls a protocol" to see the "order of call"we haven't decided what to do about this yet