<br>
<div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">
I just meant it&#39;s not immediately clear how<br></div>
<br>
 foo :: forall x. (x -&gt; x -&gt; y)<br>
<br>
is different from<br>
<br>
foo :: (forall x. x -&gt; x) -&gt; y<br>
<br>
It takes a bit of getting used to.</blockquote></div><br>Those are different functions all together, so perhaps you meant these.<br><br>  foo :: forall x y. (x -&gt; x) -&gt; y<br>  bar :: forall y. (forall x . x -&gt; x) -&gt; y<br>

<br>While neither function is seemingly useful, the second says that the higher-order argument must be polymorphic. I see two options:<br><br>  bar id<br>  bar undefined<br><br>The first has these and many more:<br><br>  foo (+1)<br>

  foo show<br>  foo ($)<br>  ...<br><br>Sean<br>