Requiring clojure.core overwrites the value of data-readers, which suggests that namespace is being reevaluated despite already being implicitly loaded when Clojure boots.
I cannot reproduce this behavior with namespaces I've written, which leads me to believe that this might stem from special treatment of clojure.core. ClojureJVM handles data-readers differently (alter-var-root seems to have no effect) and I was not able to reproduce this defect there.
I am not sure about ClojureCLR but on the jvm this is the result of the repl binding data-readers
the above is from using the clojure.main repl, so that could be different from running under nrepl
On ClojureCLR directly,
user=> (alter-var-root #'data-readers assoc :foo 99)
As Kevin points out, the likely issue is whether clojure.main is in the middle. clojure.main's repl explicitly establishes a binding for data-readers:
(binding [ns ns
I think there is nothing to be done here.