The forms required for implementing arity-overloaded protocol methods are inconsistent between the "extend-*" macros and "defrecord".
The "extend" family of macros requires overloaded method definitions to follow the form used by defn:
However, "defrecord" requires implementations to be defined separately:
Furthermore, the error modes if you get it wrong are unhelpful.
If you use the "defrecord" form with "extend-*", it evals successfully, but later definitions silently overwrite lexically previous definitions.
If you use the "extend-*" form with "defrecord", it gives a cryptic error about "unsupported binding form" on the body of the method.
This is not the same issue as CLJ-1056: That pertains to the syntax for declaring a protocol, this problem is with the syntax for implementing a protocol.