<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Clojure Q&amp;A - Recent questions and answers in Protocols</title>
<link>https://ask.clojure.org/index.php/qa/clojure/protocols</link>
<description></description>
<item>
<title>Answered: Should reduce-kv support String?</title>
<link>https://ask.clojure.org/index.php/15109/should-reduce-kv-support-string?show=15110#a15110</link>
<description>&lt;p&gt;Interesting idea! Logged as &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/CLJ-2956&quot;&gt;https://clojure.atlassian.net/browse/CLJ-2956&lt;/a&gt;&lt;/p&gt;
</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/15109/should-reduce-kv-support-string?show=15110#a15110</guid>
<pubDate>Fri, 29 May 2026 21:21:22 +0000</pubDate>
</item>
<item>
<title>Hypergraphs, via protocols, perhaps extending loom?</title>
<link>https://ask.clojure.org/index.php/13444/hypergraphs-via-protocols-perhaps-extending-loom</link>
<description>&lt;p&gt;I am exploring clojure implementations of hypergraphs (edges can join &amp;gt; 2 nodes)?  i've used &lt;a rel=&quot;nofollow&quot; href=&quot;https://cljdoc.org/d/aysylu/loom&quot;&gt;loom&lt;/a&gt;  for graphs, and imagine trying to extend it somehow.  &lt;/p&gt;
&lt;p&gt;either with loom or without, any suggestions how to use PROTOCOLS for these definitions?&lt;/p&gt;
&lt;p&gt;thanks for any suggestions.  - RIk&lt;/p&gt;
</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/13444/hypergraphs-via-protocols-perhaps-extending-loom</guid>
<pubDate>Thu, 09 Nov 2023 02:41:39 +0000</pubDate>
</item>
<item>
<title>Answered: Allow clojure.core/extend to take a regular map as proto+mmaps parameter (today it's just &quot;kwargs&quot;)</title>
<link>https://ask.clojure.org/index.php/12752/clojure-extend-regular-proto-mmaps-parameter-today-kwargs?show=12760#a12760</link>
<description>&lt;p&gt;Logged as &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/CLJ-2756&quot;&gt;https://clojure.atlassian.net/browse/CLJ-2756&lt;/a&gt; (a more general problem description).&lt;/p&gt;
</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/12752/clojure-extend-regular-proto-mmaps-parameter-today-kwargs?show=12760#a12760</guid>
<pubDate>Mon, 13 Mar 2023 15:53:49 +0000</pubDate>
</item>
<item>
<title>Answered: Would it make sense to have a flag to cache protocol implementation lookups?</title>
<link>https://ask.clojure.org/index.php/11801/would-make-sense-have-cache-protocol-implementation-lookups?show=11802#a11802</link>
<description>&lt;p&gt;I think a proposal for a caching scheme would be welcomed. I'll log a ticket as a place to discuss further in a bit.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Looking a bit it seems that there are a couple of tickets that look to address &lt;code&gt;satisfies?&lt;/code&gt;, the first being &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/CLJ-1814&quot;&gt;https://clojure.atlassian.net/browse/CLJ-1814&lt;/a&gt; which seems to rely on a solution for &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/CLJ-2426&quot;&gt;https://clojure.atlassian.net/browse/CLJ-2426&lt;/a&gt;. Both seem to have quite a bit of discussion around them.&lt;/p&gt;
</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11801/would-make-sense-have-cache-protocol-implementation-lookups?show=11802#a11802</guid>
<pubDate>Mon, 25 Apr 2022 13:32:17 +0000</pubDate>
</item>
<item>
<title>Answered: Should extenders also list types that extend a protocol via deftype?</title>
<link>https://ask.clojure.org/index.php/11680/should-extenders-also-list-types-that-extend-protocol-deftype?show=11684#a11684</link>
<description>&lt;p&gt;This matches the docstring for &lt;code&gt;extenders&lt;/code&gt; - &quot;Returns a collection of the types explicitly extending protocol', I think here &quot;explicitly extending&quot; refers to types that have been extended via extend-type or extend-protocol or extend. The three mechanisms of extension are sometimes referred to as &quot;external&quot; (or &quot;explicit&quot;), &quot;direct&quot; (deftype / defrecord / reify), and &quot;metadata&quot;, see &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.org/reference/protocols&quot;&gt;https://clojure.org/reference/protocols&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So, not a bug.&lt;/p&gt;
</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11680/should-extenders-also-list-types-that-extend-protocol-deftype?show=11684#a11684</guid>
<pubDate>Sat, 26 Mar 2022 16:40:35 +0000</pubDate>
</item>
<item>
<title>Answered: When does a metadata protocol extension get chosen?</title>
<link>https://ask.clojure.org/index.php/11085/when-does-a-metadata-protocol-extension-get-chosen?show=11086#a11086</link>
<description>&lt;p&gt;Yes, this is expected.&lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.org/reference/protocols#_extend_via_metadata&quot;&gt;https://clojure.org/reference/protocols#_extend_via_metadata&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This doesn't really impact the caching of methods, just the selection of the method choice to cache.&lt;/p&gt;
</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11085/when-does-a-metadata-protocol-extension-get-chosen?show=11086#a11086</guid>
<pubDate>Wed, 22 Sep 2021 20:28:29 +0000</pubDate>
</item>
<item>
<title>Protocol dispatch via interfaces is nondeterministic</title>
<link>https://ask.clojure.org/index.php/11075/protocol-dispatch-via-interfaces-is-nondeterministic</link>
<description>&lt;p&gt;If an object is an instance of multiple (unrelated) interfaces that each extend a protocol, the dispatched method will be chosen at random.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(defn reproduce []
  (eval 
    (list 'do
          (list 'ns (gensym))
          '(do (definterface A)
               (definterface B)

               (defprotocol P
                 (a [this]))

               (extend-protocol P
                 A
                 (a [this] :a)
                 B
                 (a [this] :b))
               (a (reify A B))))))

(frequencies
  (repeatedly 100 reproduce))
;=&amp;gt; {:b 52, :a 48}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;One solution is to sort interfaces by name before choosing the implementation, so at least the nondeterminism is eliminated. We could go further and also print a warning in this case.&lt;/p&gt;
&lt;p&gt;Logged as: &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/CLJ-2656&quot;&gt;https://clojure.atlassian.net/browse/CLJ-2656&lt;/a&gt;&lt;/p&gt;
</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11075/protocol-dispatch-via-interfaces-is-nondeterministic</guid>
<pubDate>Tue, 21 Sep 2021 19:25:07 +0000</pubDate>
</item>
<item>
<title>Answered: Type annotation on protocol causes runtime casting exception</title>
<link>https://ask.clojure.org/index.php/11065/type-annotation-protocol-causes-runtime-casting-exception?show=11070#a11070</link>
<description>&lt;p&gt;If you want primitive types, use definterface.&lt;/p&gt;
</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/11065/type-annotation-protocol-causes-runtime-casting-exception?show=11070#a11070</guid>
<pubDate>Mon, 20 Sep 2021 15:12:32 +0000</pubDate>
</item>
<item>
<title>Answered: Changing repl formatting function for a type</title>
<link>https://ask.clojure.org/index.php/10049/changing-repl-formatting-function-for-a-type?show=10050#a10050</link>
<description>&lt;p&gt;You can supply a new &lt;code&gt;print-method&lt;/code&gt; / &lt;code&gt;print-dup&lt;/code&gt; for clojure.lang.Atom, something like:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(defmethod print-method clojure.lang.Atom [obj ^java.io.Writer w] 
  (.write w &quot;#atom&quot;))
&lt;/code&gt;&lt;/pre&gt;
</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/10049/changing-repl-formatting-function-for-a-type?show=10050#a10050</guid>
<pubDate>Wed, 13 Jan 2021 22:21:16 +0000</pubDate>
</item>
<item>
<title>Answered: Better stacktraces for protocol methods</title>
<link>https://ask.clojure.org/index.php/9775/better-stacktraces-for-protocol-methods?show=9785#a9785</link>
<description>&lt;p&gt;Logged at &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.atlassian.net/browse/CLJ-2590&quot;&gt;https://clojure.atlassian.net/browse/CLJ-2590&lt;/a&gt;&lt;/p&gt;
</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/9775/better-stacktraces-for-protocol-methods?show=9785#a9785</guid>
<pubDate>Thu, 12 Nov 2020 14:49:02 +0000</pubDate>
</item>
<item>
<title>Answered: Where does one place a nav function when implementing Navigable protocol?</title>
<link>https://ask.clojure.org/index.php/9073/where-does-place-function-implementing-navigable-protocol?show=9074#a9074</link>
<description>&lt;p&gt;You would add the metadata containing &lt;code&gt;clojure.datafy/nav&lt;/code&gt; as the key (and your &lt;code&gt;nav&lt;/code&gt; function as the value) to the collection that would be passed to &lt;code&gt;nav&lt;/code&gt;, i.e., the nested maps.&lt;/p&gt;
&lt;p&gt;It's worth thinking about the full context tho' (for REBL and other tools that use &lt;code&gt;datafy&lt;/code&gt; and &lt;code&gt;nav&lt;/code&gt;): you start out with &quot;stuff&quot; that is first &lt;code&gt;datafy&lt;/code&gt;'d by those tools to produce &quot;pure data&quot; that can be navigated via &lt;code&gt;get&lt;/code&gt; etc and also via &lt;code&gt;nav&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;So you go from &quot;stuff&quot; -&amp;gt; &lt;code&gt;datafy&lt;/code&gt; -&amp;gt; &quot;pure data&quot; (plus &lt;code&gt;nav&lt;/code&gt; metadata).&lt;/p&gt;
&lt;p&gt;Then from &quot;pure data&quot; -&amp;gt; &lt;code&gt;get&lt;/code&gt; -&amp;gt; &quot;new pure data&quot;, or from &quot;pure data&quot; -&amp;gt; &lt;code&gt;nav&lt;/code&gt; -&amp;gt; &quot;new stuff corresponding to new pure data&quot;.&lt;/p&gt;
&lt;p&gt;So you might want to start out with your map supporting &lt;code&gt;datafy&lt;/code&gt; metadata so that when REBL etc datafies it, the result is navigable -- and could be augmented with additional keys and/or metadata as part of the datafication for display in REBL etc.&lt;/p&gt;
&lt;p&gt;If you start with pure data (with &lt;code&gt;nav&lt;/code&gt; metadata), calling &lt;code&gt;datafy&lt;/code&gt; on it should be an identity function so you &lt;em&gt;could&lt;/em&gt; just add &lt;code&gt;nav&lt;/code&gt; metadata to the original map. I personally think it's better to start with &lt;code&gt;datafy&lt;/code&gt; metadata (and have the implementation add the &lt;code&gt;nav&lt;/code&gt; metadata) so that the stuff -&amp;gt; &lt;code&gt;datafy&lt;/code&gt; -&amp;gt; data -&amp;gt; &lt;code&gt;nav&lt;/code&gt; -&amp;gt; new-stuff pattern is more explicit. That's the approach I took in &lt;code&gt;clojure.java.jdbc&lt;/code&gt; and &lt;code&gt;next.jdbc&lt;/code&gt; -- and I &lt;a rel=&quot;nofollow&quot; href=&quot;https://corfield.org/blog/2018/12/03/datafy-nav/&quot;&gt;blogged about &lt;code&gt;datafy&lt;/code&gt;/&lt;code&gt;nav&lt;/code&gt;&lt;/a&gt; in December 2018.&lt;/p&gt;
</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/9073/where-does-place-function-implementing-navigable-protocol?show=9074#a9074</guid>
<pubDate>Wed, 05 Feb 2020 01:15:53 +0000</pubDate>
</item>
<item>
<title>Answered: What is an order of protocol methods lookup in protocol implementation for types having subclass relationship</title>
<link>https://ask.clojure.org/index.php/8691/protocol-protocol-implementation-subclass-relationship?show=8692#a8692</link>
<description>&lt;p&gt;The most specific match will be chosen - given Keyword and Object impls, the Keyword one will be selected. &lt;/p&gt;
&lt;p&gt;If the most specific match is ambiguous (same concrete type extends two interfaces that are extended), the selected impl is arbitrary and undefined (so you should probably avoid doing that).&lt;/p&gt;
&lt;p&gt;From &lt;a rel=&quot;nofollow&quot; href=&quot;https://clojure.org/reference/protocols&quot;&gt;https://clojure.org/reference/protocols&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&quot;if one interface is derived from the other, the more derived is used, else which one is used is unspecified&quot;&lt;/p&gt;
&lt;/blockquote&gt;
</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/8691/protocol-protocol-implementation-subclass-relationship?show=8692#a8692</guid>
<pubDate>Mon, 07 Oct 2019 16:32:42 +0000</pubDate>
</item>
<item>
<title>Answered: Can someone explain the arguments to nav ?</title>
<link>https://ask.clojure.org/index.php/8550/can-someone-explain-the-arguments-to-nav?show=8573#a8573</link>
<description>&lt;p&gt;nav is a generic framework for navigation. Given a &quot;container&quot; (coll) and some selection in that container, &quot;navigate&quot; to that selection. For containers, k makes sense (like maps), for some it's unnecessary and the selection value is sufficient. As a generic framework, both are provided as you might need both to do selection.&lt;/p&gt;
&lt;p&gt;As far as what exactly the inputs and the output are, this is a totally contextual answer. nav is a tool that is fit to the purpose at hand so without knowing a particular goal, it's impossible to be specific. You are typically both the caller and implementer (via instance metadata) of nav and the important thing is that they match.&lt;/p&gt;
&lt;p&gt;In REBL, nav is used in service of the browse action where you have something selected in the left pane and you &quot;browse&quot; into it. Other uses may do different things (serializing an object graph, whatever). &lt;/p&gt;
</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/8550/can-someone-explain-the-arguments-to-nav?show=8573#a8573</guid>
<pubDate>Mon, 09 Sep 2019 13:50:16 +0000</pubDate>
</item>
<item>
<title>Answered: How to spot patterns where Protocols and custom types are good fit</title>
<link>https://ask.clojure.org/index.php/8228/how-spot-patterns-where-protocols-and-custom-types-are-good?show=8276#a8276</link>
<description>&lt;p&gt;If you want to take a deep dive about polymorphism in clojure, I recommend a book from Paul Stadig - Clojure Polymorphism. &lt;a rel=&quot;nofollow&quot; href=&quot;https://leanpub.com/clojurepolymorphism&quot;&gt;https://leanpub.com/clojurepolymorphism&lt;/a&gt;&lt;/p&gt;
</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/8228/how-spot-patterns-where-protocols-and-custom-types-are-good?show=8276#a8276</guid>
<pubDate>Tue, 30 Jul 2019 15:14:04 +0000</pubDate>
</item>
<item>
<title>Answered: Cannot implement protocol methods of the same name inline</title>
<link>https://ask.clojure.org/index.php/1952/cannot-implement-protocol-methods-of-the-same-name-inline?show=2307#a2307</link>
<description>Reference: &lt;a href=&quot;https://clojure.atlassian.net/browse/CLJ-1625&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.atlassian.net/browse/CLJ-1625&lt;/a&gt; (reported by tsdh)</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/1952/cannot-implement-protocol-methods-of-the-same-name-inline?show=2307#a2307</guid>
<pubDate>Wed, 26 Jun 2019 12:00:00 +0000</pubDate>
</item>
<item>
<title>Answered: Protocol functions fail to find future extensions when assigned to a local or new var</title>
<link>https://ask.clojure.org/index.php/1544/protocol-functions-fail-future-extensions-assigned-local?show=1772#a1772</link>
<description>Reference: &lt;a href=&quot;https://clojure.atlassian.net/browse/CLJ-1796&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.atlassian.net/browse/CLJ-1796&lt;/a&gt; (reported by alex+import)</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/1544/protocol-functions-fail-future-extensions-assigned-local?show=1772#a1772</guid>
<pubDate>Wed, 26 Jun 2019 12:00:00 +0000</pubDate>
</item>
<item>
<title>Answered: Extend-protocol for array of Object does not work on array of subtypes of Object.</title>
<link>https://ask.clojure.org/index.php/1895/extend-protocol-array-object-does-work-array-subtypes-object?show=1989#a1989</link>
<description>Reference: &lt;a href=&quot;https://clojure.atlassian.net/browse/CLJ-2215&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.atlassian.net/browse/CLJ-2215&lt;/a&gt; (reported by alex+import)</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/1895/extend-protocol-array-object-does-work-array-subtypes-object?show=1989#a1989</guid>
<pubDate>Wed, 26 Jun 2019 12:00:00 +0000</pubDate>
</item>
<item>
<title>Answered: Improve support for extending protocols to primitive arrays</title>
<link>https://ask.clojure.org/index.php/1963/improve-support-for-extending-protocols-primitive-arrays?show=2349#a2349</link>
<description>Reference: &lt;a href=&quot;https://clojure.atlassian.net/browse/CLJ-1381&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.atlassian.net/browse/CLJ-1381&lt;/a&gt; (reported by alexmiller)</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/1963/improve-support-for-extending-protocols-primitive-arrays?show=2349#a2349</guid>
<pubDate>Wed, 26 Jun 2019 12:00:00 +0000</pubDate>
</item>
<item>
<title>Answered: clojure.core/proxy does not work when reloading namespaces</title>
<link>https://ask.clojure.org/index.php/2405/clojure-core-proxy-does-not-work-when-reloading-namespaces?show=2678#a2678</link>
<description>Reference: &lt;a href=&quot;https://clojure.atlassian.net/browse/CLJ-1864&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.atlassian.net/browse/CLJ-1864&lt;/a&gt; (reported by schmir)</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/2405/clojure-core-proxy-does-not-work-when-reloading-namespaces?show=2678#a2678</guid>
<pubDate>Wed, 26 Jun 2019 12:00:00 +0000</pubDate>
</item>
<item>
<title>Answered: Protocol implementation inconsistencies when overloading arity</title>
<link>https://ask.clojure.org/index.php/2779/protocol-implementation-inconsistencies-overloading-arity?show=2996#a2996</link>
<description>Reference: &lt;a href=&quot;https://clojure.atlassian.net/browse/CLJ-825&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.atlassian.net/browse/CLJ-825&lt;/a&gt; (reported by alex+import)</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/2779/protocol-implementation-inconsistencies-overloading-arity?show=2996#a2996</guid>
<pubDate>Wed, 26 Jun 2019 12:00:00 +0000</pubDate>
</item>
<item>
<title>Answered: Add prefer-proto, like prefer-method but for protocols</title>
<link>https://ask.clojure.org/index.php/2811/add-prefer-proto-like-prefer-method-but-for-protocols?show=3198#a3198</link>
<description>Reference: &lt;a href=&quot;https://clojure.atlassian.net/browse/CLJ-1807&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.atlassian.net/browse/CLJ-1807&lt;/a&gt; (reported by bronsa)</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/2811/add-prefer-proto-like-prefer-method-but-for-protocols?show=3198#a3198</guid>
<pubDate>Wed, 26 Jun 2019 12:00:00 +0000</pubDate>
</item>
<item>
<title>Answered: PermGen leak in multimethods and protocol fns when evaled</title>
<link>https://ask.clojure.org/index.php/3820/permgen-leak-in-multimethods-and-protocol-fns-when-evaled?show=4054#a4054</link>
<description>Reference: &lt;a href=&quot;https://clojure.atlassian.net/browse/CLJ-1152&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.atlassian.net/browse/CLJ-1152&lt;/a&gt; (reported by chouser@n01se.net)</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/3820/permgen-leak-in-multimethods-and-protocol-fns-when-evaled?show=4054#a4054</guid>
<pubDate>Wed, 26 Jun 2019 12:00:00 +0000</pubDate>
</item>
<item>
<title>Answered: defprotocol doesn't resolve tag classnames</title>
<link>https://ask.clojure.org/index.php/4242/defprotocol-doesnt-resolve-tag-classnames?show=4382#a4382</link>
<description>Reference: &lt;a href=&quot;https://clojure.atlassian.net/browse/CLJ-1180&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.atlassian.net/browse/CLJ-1180&lt;/a&gt; (reported by bronsa)</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/4242/defprotocol-doesnt-resolve-tag-classnames?show=4382#a4382</guid>
<pubDate>Wed, 26 Jun 2019 12:00:00 +0000</pubDate>
</item>
<item>
<title>Answered: satisfies? doesn't work with the new instance-based protocol polymorphism</title>
<link>https://ask.clojure.org/index.php/4622/satisfies-doesnt-work-instance-based-protocol-polymorphism?show=4711#a4711</link>
<description>Reference: &lt;a href=&quot;https://clojure.atlassian.net/browse/CLJ-2426&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.atlassian.net/browse/CLJ-2426&lt;/a&gt; (reported by jumar)</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/4622/satisfies-doesnt-work-instance-based-protocol-polymorphism?show=4711#a4711</guid>
<pubDate>Wed, 26 Jun 2019 12:00:00 +0000</pubDate>
</item>
<item>
<title>Answered: Make `satisfies?` as fast as a protocol method call</title>
<link>https://ask.clojure.org/index.php/3304/make-satisfies-as-fast-as-a-protocol-method-call?show=3396#a3396</link>
<description>Reference: &lt;a href=&quot;https://clojure.atlassian.net/browse/CLJ-1814&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://clojure.atlassian.net/browse/CLJ-1814&lt;/a&gt; (reported by bronsa)</description>
<category>Protocols</category>
<guid isPermaLink="true">https://ask.clojure.org/index.php/3304/make-satisfies-as-fast-as-a-protocol-method-call?show=3396#a3396</guid>
<pubDate>Wed, 26 Jun 2019 12:00:00 +0000</pubDate>
</item>
</channel>
</rss>