std.lib.extend
extend-all
macro
added in 3.0
(extend-all proto ptmpls & args)Transforms a protocl template into multiple extend-type expresions
(macroexpand-1 ’(extend-all Magma [(op (x y(% x y)))]
Number [op-number]
[List Vector] [op-list]))
=> ’(do (clojure.core/extend-type Number Magma (op (x y(op-number x y)))) (clojure.core/extend-type List Magma (op (x y(op-list x y)))) (clojure.core/extend-type Vector Magma (op (x y(op-list x y)))))
extend-entry
added in 3.0
(extend-entry proto ptmpls [ts funcs])extend-single
added in 3.0
(extend-single t proto ptmpls funcs)