I just leaned that even inside functions, “def” in Clojure will set a top level binding. Not what I expected, being a new-ish language.
;; Note that if you use def inside a let block, your interned variable is within
;; the current namespace and will appear OUTSIDE of the let block.
user=> (let [y 1]
(def z y)