(Don't know why I can only respond to the first message.) I come across partial implementation all the time, and with proxy, too. In Eclipse this is so common that this is typical:
"This adapter class provides default implementations for the methods described by the SelectionListener interface. Classes that wish to deal with SelectionEvents can extend this class and override only the methods which they are interested in." You may have seen the idea of optional operation in java.util.List and how it's handled in places like AbstractList with default implementations. Clojure itself has partial implementations of List in PersistentList and Collection in PersistentQueue. I suppose the alternative would be a proliferation of interfaces and protocols that would prevent reuse; something like ListWithoutModificationOrBulkOperations could have a full implementation but little use. I can see the value of your view of protocol as spec, but maybe for domain-realted concepts and less for plumbing. -- 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