Hi,<br><br>I can write:<br>*Main&gt; let yes = not . not<br>*Main&gt; :t yes<br>yes :: Bool -&gt; Bool<br><br>But not:<br>*Main&gt; let isNotEqual = not . (==)<br><br>&lt;interactive&gt;:1:23:<br>&nbsp;&nbsp;&nbsp; Couldn&#39;t match expected type `Bool&#39;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; against inferred type `a -&gt; Bool&#39;<br>&nbsp;&nbsp;&nbsp; Probable cause: `==&#39; is applied to too few arguments<br>&nbsp;&nbsp;&nbsp; In the second argument of `(.)&#39;, namely `(==)&#39;<br>&nbsp;&nbsp;&nbsp; In the expression: not . (==)<br><br>
Why?<br><br>Oscar<br><br>