{"by":"brandonbloom","id":8923939,"kids":[8924093],"parent":8923835,"text":"Your change is invalid. I picked my example very carefully: You can not extend an interface to an object after the type has been created. That only works with protocols.<p>That said, there are countless examples. I already mentioned the proposed ns+ form, but there are a couple more in the design spec here: <a href=\"http://dev.clojure.org/display/design/Feature+Expressions\" rel=\"nofollow\">http://dev.clojure.org/display/design/Feature+Expressions</a><p>I'm not going to bother constructing more concrete examples, since it's trivial to do and each and everyone will have case-specific solutions that will seem "nicer" than feature expressions. But that's just it: It will be a case-by-case solution, rather than a general solution. Case-by-case application-centric solutions are preferable for the platform abstractions of your major subsystems, but often you just want to hack it and feature-macros simply don't offer the flexibility you need.","time":1421859486,"type":"comment"}