<div>I am having hard time understanding how removing the  outer parenthesis in</div><div><br></div><div>(max.(+1)) 2 2 </div><div><br></div><div>to </div><div><br></div><div>max.(+1) 2 2 </div><div><br></div><div>changes the meaning of expression.</div>
<div><br></div><div>My expectation was that &quot;max.(+1) takes two numbers and returns the max as defined in the type:</div><div><br></div><div><div>:t max.(+1)</div><div>max.(+1) :: (Ord b, Num b) =&gt; b -&gt; b -&gt; b</div>
</div><div><br></div><div><br></div><div><br></div><div>With parenthesis it does what I expect it to:</div><div><br></div><div><br></div><div>Prelude&gt; :t (max.(+1)) 2 2</div><div>(max.(+1)) 2 2 :: (Ord b, Num b) =&gt; b</div>
<div>Prelude&gt;  (max.(+1)) 2 2</div><div>3</div><div><br></div><div><br></div><div>But if I remove the parenthesis I get a beast that I have no idea what its type signature mean any more</div><div><br></div><div>Prelude&gt; :t (max.(+1)) 2 2</div>
<div>(max.(+1)) 2 2 :: (Ord b, Num b) =&gt; b</div><div>Prelude&gt; :t max.(+1) 2 2</div><div>max.(+1) 2 2 :: (Ord b, Num a1, Num (a1 -&gt; a -&gt; b)) =&gt; a -&gt; b -&gt; b</div><div><br></div><div><br></div><div>How did removal of parenthesis changed the meaning?      How do you interpret the type:  &quot;(Ord b, Num a1, Num (a1 -&gt; a -&gt; b)) =&gt; a -&gt; b -&gt; b&quot;?</div>
<div><br></div><div>Thanks</div><div><br></div><div><br></div><div><br></div>-- <br>Daryoush<br><br>Weblog:  <a href="http://onfp.blogspot.com/" target="_blank">http://onfp.blogspot.com/</a><br>