title: What does immutable variable in Haskell mean?
body: <p>I am quite confused with the concept of immutable variables in Haskell. It seems like that we can't change the value of variables in Haskell. But when I tried following code in GHCI, it seemed like the value of variables did change:</p>
  
  <pre><code>Prelude&gt; foo x=x+1
  Prelude&gt; a=1
  Prelude&gt; a
  1
  Prelude&gt; foo a
  2
  Prelude&gt; a=2
  Prelude&gt; a
  2
  Prelude&gt; foo a
  3
  </code></pre>
  
  <p>Does this conflict with the idea of immutable variables?</p>
  
  <p>Many thanks!</p>