I'd expect that `satisfies?` works even when providing protocol implementation via metadata, however that doesn't seem to be the case:
(defprotocol Foo :extend-via-metadata true (foo [x]))
(foo (with-meta [42] {`foo (fn [x] :boo)}))
;; => :boo
;; but `satisfies?` doesn't work
(satisfies? Foo (with-meta [42] {`foo (fn [x] :boo)}))
;; => false
*Patch*: 0001-CLJ-2426-fix-satisfies-for-new-instance-based-protoc.patch