Hi all,<br>Recently I wrote a function that takes a unique identifier that I called &#39;id&#39;. I then tried to apply the &#39;id&#39; function to it and GHC did not like that. But it should. <br><br>For example in &#39;test&#39; I have told the compiler that the id argument is an Int. So type inference should be able to determine the first &#39;id&#39; in &#39;id id&#39; couldn&#39;t possibly be an Int, but it complains. So I explicitly told the compiler the type of &#39;id&#39; in test1 - this didn&#39;t work either. The final function &#39;test3&#39; works as expected. Is there something I am not understand about the way type inference is supposed to work?<br>
<br>test :: Int -&gt; Int<br>test id = id id<br><br>test1 :: Int -&gt; Int<br>test1 id = idFunc id<br>    where<br>      idFunc :: a -&gt; a<br>      idFunc = id<br><br>test2 :: Int -&gt; Int<br>test2 myid@id = id myid<br>
<br>test3 :: Int -&gt; Int<br>test3 id = Prelude.id id<br><br>thanks ...<br>-deech<br><br>