Кто может объяснить вот такое поведение:
Добавляю методы через doseq, они добавляются:
(doseq [[k v] rules]
(defmethod rule k [_] [[:& v]]))
;; => nil
Вызываю и они вызываются, repl возвращает ожидаемый результат (вектор с каким-то контентом):
(rule :sr-only)
;; => [[:&]]
;; it is expected result
Пытаюсь впихнуть результат применения в атом, говорит ClassCastException:
(swap! rule-atom assoc :old (rule :sr-only))
; error: java.lang.ClassCastException: class clojure.lang.Atom cannot be cast to class clojure.lang.Associative (clojure.lang.Atom and clojure.lang.Associative are in unnamed module of loader 'app') (
RT.java)
; expected:
undefined
ЧЯДНТ?