If I understand what you’re saying, then it sounds like you are reloading a protocol definition, which creates a new protocol with the same name as the old protocol, but they are different things. Old objects which implement the old protocol do not implement the new protocol, even though it looks identical and has the same name. This kind of issue has bit me when working in iterative development on files, so I tend to protect my protocol definitions inside defonce forms, so they do not get redefined when I reload the file. It looks awkward, but helps. The example which inspired me to do this was in Overtone: https://github.com/overtone/overtone/blob/master/src/overtone/music/rhythm.clj#L7-L28
-James On Friday, November 13, 2015 at 2:50:10 PM UTC-6, Terje Dahl wrote: > > I put a core.async/mult instance in a map structure in a map. > When i do load-file ... (from La Clojure in IntelliJ) the structure with > the object instance is still there, but it isn't possible to use. > I get: > >> CompilerException java.lang.IllegalArgumentException: No implementation >> of method: :tap* of protocol: #'clojure.core.async/Mult found for class: >> clojure.core.async$mult$reify__7262 >> > > Is this something to do with core.async itself, or perhaps a more general > issue with protocol? > Any thoughts? > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.