title: Haskell: let statement, copy data type to itself with/without modification not working
body: <p>I want to update a record syntax with a change in one field so i did something like:</p>
  
  <pre><code>let rec = rec{field = 1}
  </code></pre>
  
  <p>But I've noticed that i can't print <code>rec</code> anymore, means the compiler seems to get into an infinite loop when i try. so i have tried doing:</p>
  
  <pre><code>let a = 1 -- prints OK
  
  let a = a -- now i can't print a (also stuck in a loop) 
  </code></pre>
  
  <p>So i can't do <code>let a = a</code> with any type, but i don't understand why, and how should i resolve this issue.</p>
  
  <p>BTW: while doing:</p>
  
  <pre><code>let b = a {...record changes..}
  
  let a = b
  </code></pre>
  
  <p>works, but seems redundant.</p>