title: Haskell infinite loop with simply re-let action
body: <p>I have such code:</p>
  
  <pre><code>Prelude&gt; let n = [1,2,3,4]
  Prelude&gt; n
  [1,2,3,4]
  Prelude&gt; 0:n
  [0,1,2,3,4]
  Prelude&gt; let n = 0:n
  </code></pre>
  
  <p>And when I type in Haskell interpreter after upper:</p>
  
  <pre><code>Prelude&gt; n
  </code></pre>
  
  <p>I'm getting the infinite result:<br /></p>
  
  <pre><code>[0,0,0,0,0,0,0,0,0
  </code></pre>
  
  <p>And where printing " 0, " is infinite.</p>
  
  <p>Why do I get such result?<br />
  Is there some recursive stuff, and why/how does it work in interpreater level?<br />
  Could I catch stack overflow, which such stuff on GHCi or not?</p>
  
  <p>Thanks,<br />
  Best Regards!</p>