title: Why it is possible to redefine Var (given that in FP values are immutable)?
body: <p>I am using Counterclockwise to run a REPL, but I noticed this on Leiningen too.</p>
  
  <p>I can call def to define a var twice. For example,</p>
  
  <pre><code>=&gt; (def a 1)
  #'fractal.core/a
  =&gt; a
  1
  =&gt; (def a 2)
  #'fractal.core/a
  =&gt; a
  2
  </code></pre>
  
  <p>Clojure is a Functional Programming language and in FP objects are supposed to be immutable. If I can do this in what sense a is immutable?</p>
  
  <p>Thanks for any comments.</p>