Работая с Clojure, мы имеем следующее:
(defprotocol Greeter (hello [args] "Say hello"))
(extend-protocol Greeter
String
(hello [this] (str "Hello " this)))
(hello "world") ; "Hello world"
Все идет нормально. Затем добавляем:
(defn hello [args] (str "Wassup " args "?"))
Что изменяет вывод предыдущей формы на:
(hello "world") ; "Wassup world?"
Есть ли способ сделать так, чтобы протокол имел приоритет над функцией?