title: Going through the source code for the prelude brings up weirdness
body: <p>I was looking for the definition of <code>seq</code> and came across this weirdness. Why do all these functions have the same/similar definitions?</p>
  
  <pre><code>seq :: a -&gt; b -&gt; b
  seq = let x = x in x
  
  inline :: a -&gt; a
  inline = let x = x in x    
  
  lazy :: a -&gt; a
  lazy = let x = x in x
  </code></pre>
  
  <p>There are many more with this definition in the source code. What's going on?</p>