https://github.com/swannodette/lt-cljs-tutorial/blob/master/lt-cljs-tutorial.cljs#L1335-L1355
These lines of code and comments seem to suggest that there is some sort of real difference between extend-type and extend-protocol:
;; Or you can extend a protocol on a defrecord.
I wasn't sure, so I read up on them in the docs. The docs for extend-protocol state:
Useful when you want to provide several implementations of the same
protocol all at once. [...] Expands into calls to extend-type
So am I right in assuming that extend-protocol is but a convenience macro that always expands to extend-type calls? If so, the marked lines seem a little bit odd, as we're getting nothing out of using extend-protocol instead of extend-type for a single defrecord, the syntax just seems flipped around and it left me thinking there was a fundamental difference between the two.
https://github.com/swannodette/lt-cljs-tutorial/blob/master/lt-cljs-tutorial.cljs#L1335-L1355
These lines of code and comments seem to suggest that there is some sort of real difference between
extend-typeandextend-protocol:I wasn't sure, so I read up on them in the docs. The docs for
extend-protocolstate:So am I right in assuming that
extend-protocolis but a convenience macro that always expands toextend-typecalls? If so, the marked lines seem a little bit odd, as we're getting nothing out of usingextend-protocolinstead ofextend-typefor a single defrecord, the syntax just seems flipped around and it left me thinking there was a fundamental difference between the two.