anchor.diff:  
   Using <<java_interop#set,set>> for Java fields is documented in <<java_interop#set,Java Interop>>.
   
  -[[Interning]]
  +[[interning]]
   == Interning
   
  -The Namespace system maintains global maps of symbols to Var objects _(see <<namespaces#,Namespaces>>)_. If a _**def**_ expression does not find an interned entry in the current namespace for the symbol being def-ed, it creates one, otherwise it uses the existing Var. This find-or-create process is called interning. This means that, unless they have been unmap-ed, Var objects are stable references and need not be looked up every time. It also means that namespaces constitute a global environment in which, as described in <<evaluation#,Evaluation>>, the compiler attempts to resolve all free symbols as Vars.
  +The Namespace system maintains global maps of symbols to Var objects _(see <<namespaces#,Namespaces>>)_. If a `def` expression does not find an interned entry in the current namespace for the symbol being def-ed, it creates one, otherwise it uses the existing Var. This find-or-create process is called interning. This means that, unless they have been unmap-ed, Var objects are stable references and need not be looked up every time. It also means that namespaces constitute a global environment in which, as described in <<evaluation#,Evaluation>>, the compiler attempts to resolve all free symbols as Vars.
   
   The <<special_forms#var,var>> special form or the `pass:[#']` reader macro _(see <<reader#,Reader>>)_ can be used to get an interned Var object instead of its current value.
   
  
positive.code: == Related functions
  
  [%hardbreaks]
  Variants of _**def**_: https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/defn[defn] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/defn-[defn-] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/definline[definline] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/defmacro[defmacro] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/defmethod[defmethod] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/defmulti[defmulti] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/defonce[defonce] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/defstruct[defstruct]
  Working with interned Vars: https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/declare[declare] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/intern[intern] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/binding[binding] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/find-var[find-var] <<special_forms#var,var>>
  Working with Var objects: https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/with-local-vars[with-local-vars] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/var-get[var-get] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/var-set[var-set] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/alter-var-root[alter-var-root] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/var?[var?] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/with-redefs[with-redefs] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/with-redefs-fn[with-redefs-fn]
  Var validators: https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/set-validator[set-validator] https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/get-validator[get-validator]
  
negative.code: 
  Clojure is a practical language that recognizes the occasional need to maintain a persistent reference to a changing value and provides 4 distinct mechanisms for doing so in a controlled manner - Vars, <<refs#,Refs>>, <<agents#,Agents>> and <<atoms#,Atoms>>. Vars provide a mechanism to refer to a mutable storage location that can be dynamically rebound (to a new storage location) on a per-thread basis. Every Var can (but needn't) have a root binding, which is a binding that is shared by all threads that do not have a per-thread binding. Thus, the value of a Var is the value of its per-thread binding, or, if it is not bound in the thread requesting the value, the value of the root binding, if any.
  
  The special form `def` creates (and <<vars#Interning,interns>>) a Var. If the Var did not already exist and no initial value is supplied, the var is unbound:
  
  [source,clojure]
  ----
  