You have reused a name already bound in the `protocols` namespace. You 
cannot bind two things to the same var.

On the other hand, precisely because namespaces are not complected with 
protocol dispatch, you can easily free the `get` identifier for your 
purposes by doing exactly what you would do if you wanted to reuse the 
identifier in some other way:

    (ns protocols
      (:refer-clojure :exclude [get]))
    (defprotocol P (get [_]))

    (ns app)
    (defrecord R []
      protocols/P
      (protocols/get [_]
        42))

You can now call `protocols/get` by namespace qualification (or by 
importing it into the current namespace):

    user> (in-ns 'app)
    app> (protocols/get (->R))
    42

Matthias

-- 
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

Reply via email to