Hi,
I wonder how is equality of keywords implemented in Clojure?
I have this piece of Java code executed in one classloader:
Keyword a = (Keyword) RT.var("clojure.core", "keyword").invoke("keyword");
Then, when I pass it to another part of my application (which uses another classloader) and do this:
Keyword b = (Keyword) RT.var("clojure.core", "keyword").invoke("keyword");
assert a == b;
Assertion passes.
Why does it work? If I'm correct, keywords are interned, but since they were created in separate classloaders shouldn't that assert fail?