Thanks for the responses. The let form is suitable enough as a workaround. The thing that really bothered me about this is because separation of responsibilities breaks down somewhat.
Imagine I create a library of different println's for use in different circumstances. (defn fancy-println [] ) (defn fast-println [] ) (defn binary-println [] ) (defn memoized-println [] ) .... The user must beware when using these because: (binding [println fast-println] do stuff... ) fast-println better not call the original println! Or else you get a StackOverflowError. And yet, the writer of the library shouldn't have to be aware that the user *might* bind fast-println to println. And the user of the library shouldn't have to be aware of the implementation details of fast-println to want to bind println. -Patrick -- 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