title: Confused with nested lambda types in haskell
body: <p>Just trying to see the types of some lambda expressions like this one:</p>
  
  <pre><code>:t \x -&gt; (\y -&gt; x y)
  \x -&gt; (\y -&gt; x y) :: (t1 -&gt; t2) -&gt; t1 -&gt; t2
  </code></pre>
  
  <p>shouldn't the type here be <code>t1-&gt;(t2-&gt;t1-&gt;t2)</code> ? </p>
  
  <p>Similarly </p>
  
  <pre><code>:t \x -&gt; (\y -&gt; (\k -&gt; y (x k)))
  \x -&gt; (\y -&gt; (\k -&gt; y (x k)))
    :: (t1 -&gt; t2) -&gt; (t2 -&gt; t3) -&gt; t1 -&gt; t3
  </code></pre>
  
  <p>Shouldn't the type be <code>t1-&gt;(t2-&gt;(t3-&gt;t2))</code>?</p>