> The above point has been answered to Christophe. I was not talking about the > way that namespacing will reduce the problem by allowing different function > names (with probably different semantics) to live in different namespaces. > This is no different than distinguishing 2 ordinary functions with the same > name, living in different namespaces, from the caller's point of vue. > > > And redefining things in foreign namespaces is rather not a > technique we should support... > > Eh? Does that make sense? > > No, I don't understand your last point. > > How can the expression problem be claimed to be (almost) solved, if only the > owner of a protocol and of a namespace can extend the protocol on types ?
In languages that conflate classes and namespaces, there can be only one place to hang a definition. So, e.g., you and I can both define a method "correct-spelling" for strings. Mine returns an array of possible American English spellings, and yours returns the best match Spanish spelling. Consumers are screwed: they can have either my method, or yours, but not both. And the "last in wins" mechanism is utterly confusing as a tiebreaker. Contrast that with com.relevance.american-english/correct-spelling vs. org.example.spanish/correct-spelling. Consumers have a clear way of choosing the one they want, or using both! That is a solution to the expression problem. You seem to be asking for a solution to something else: How do I prevent two people from saying that X means two different things? That isn't the expression problem, and it isn't solvable unless you allow only one person. Stu -- 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