Identity and equality for protocols

2010-07-12 Thread Nicolas Oury
Dear all, After playing a bit with protocols I found this (which seems odd to me): (All of this on clojure-1.2.0-master-SNAPSHOT, downloaded with lein - i don't know how recent it is) user (defprotocol Foo (foo [x] )) ; We define a protocol Foo user (def bar {:foo Foo}) ; We hide it in a

Re: Identity and equality for protocols

2010-07-12 Thread Meikel Brandmeyer
Hi, On Jul 12, 10:44 am, Nicolas Oury nicolas.o...@gmail.com wrote: After playing a bit with protocols I found this (which seems odd to me): (All of this on clojure-1.2.0-master-SNAPSHOT, downloaded with lein - i don't know how recent it is) user (defprotocol Foo (foo [x] ))   ; We define

Re: Identity and equality for protocols

2010-07-12 Thread Michał Marczyk
On 12 July 2010 10:44, Nicolas Oury nicolas.o...@gmail.com wrote: Is it what it is supposed to do? I think so. The reason why this happens is that the Var backing the protocol holds an immutable map, which extend modifies with alter-var-root; the copy has the old version. You're able to add an

Re: Identity and equality for protocols

2010-07-12 Thread Nicolas Oury
Ok. I understand. So, if you want to do some programming that generates insances, it should be done with symbols, at the macro-level? On Mon, Jul 12, 2010 at 10:01 AM, Meikel Brandmeyer m...@kotka.de wrote: Hi, On Jul 12, 10:44 am, Nicolas Oury nicolas.o...@gmail.com wrote: After playing