title: Haskell 'let' implementation
body: <p>Reading Haskell.Happy documentation and reached the implementation of 'let' operator</p>
  
  <pre><code> Exp : let var '=' Exp in Exp              { \p -&gt; $6 (($2,$4 p):p) }
  </code></pre>
  
  <p>docs say it's "a function that takes an environment of variable values, and returns the computed value of the expression:"</p>
  
  <p>can't understand the actual meaning of the syntax, how are these constructions called in Haskell?</p>
  
  <p>Edit: i mean these</p>
  
  <pre><code>\p -&gt; $6 (($2,$4 p):p)
  </code></pre>