J'essaie de définir un multiméthode et son implémentation dans un fichier séparé. Il ressemble à ceci: Dans le fichier 1Implémentation d'un multiméthode dans des fichiers distincts dans un espace de nom différent
(ns thing.a.b)
(defn dispatch-fn [x] x)
(defmulti foo dispatch-fn)
Dans le fichier 2
(ns thing.a.b.c
(:require [thing.a.b :refer [foo]])
(defmethod foo "hello" [s] s)
(defmethod foo "goodbye" [s] "TATA")
Et dans le fichier principal quand je fais appel à la méthode que je définir quelque chose comme ceci:
(ns thing.a.e
(:require thing.a.b :as test))
.
.
.
(test/foo "hello")
Lorsque je fais cela, je reçois une exception en disant "No method in multimethod 'foo'for dispatch value: hello
Qu'est-ce que je fais de mal? Ou n'est-il pas possible de définir des implémentations de multiméthodes dans des fichiers séparés?