Additionally I would like to note that Haskell's ad hoc polymorphism solution, the system of type classes, allows for extensions predicated on a type class already being implemented:
-- no dependencies on other type classes instance SomeClass SomeType where ... -- depend on OtherClass being implemented instance (OtherClass a) => SomeClass a where ... There are other differences between type classes and protocols, but this is a major one. I really like this feature of type classes. (Of course in Haskell it is pretty much necessary.) I think it would be great to have something similar work for protocols eventually, but I don't think it necessarily needs to look similar or be part of the protocol mechanism proper. For example, it is possible that the best balance of performance, complexity and expressiveness can be achieved using a mixture of protocols as they currently are with open predicate dispatch built on top of them. Given that the current situation seems to cause some aesthetic discomfort to some people, but otherwise causes no great problems, I think the rational thing to do is to weigh the possible approaches carefully, experiment with various implementations and avoid jumping at any particular solution prematurely. Cheers, M. -- 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