Clojure 1.2.0 1:1 user=> 1:2 user=> 1:3 user=> (deftype T [] Object (equals [this o] (if (instance? T o) true false))) user.T 1:4 user=> (def t (T.)) #'user/t 1:5 user=> (.equals t t) false 1:6 user=> (deftype T [] Object (equals [this o] (if (= T (class o)) true false))) user.T 1:7 user=> (def t (T.)) #'user/t 1:8 user=> (.equals t t) true 1:9 user=>
(doc deftype) especially says: > In the method bodies, the (unqualified) name can be used to name the class > (for calls to new, instance? etc). Somebody on the IRC pointed out: >> while compiling the deftype, T resolves to a different class object (a >> compiler-generated stub class) which might conflict with the special >> inlining of instance? Thanks -- 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