<div dir="ltr">On Sun, Nov 25, 2012 at 6:27 AM, Christopher Howard <span dir="ltr">&lt;<a href="mailto:christopher.howard@frigidcode.com" target="_blank">christopher.howard@frigidcode.com</a>&gt;</span> wrote:<br><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Could someone explain more precisely to me what is the significance of<br>
parentheses in the type of an expression? Are they just some kind of<br>
</blockquote><div><br></div><div>One thing you&#39;re missing is that parentheses often have multiple meanings.  Specifically, the thing that&#39;s tripping you up is a section:  a partially applied operator.</div><div><br>
</div><div>(+) is an operator, with parentheses around it to turn it into a function.  You can sometimes see this passed to e.g. fmap.</div><div><br></div><div>By extension, (5 +) is a section:  the operator (+) with its left parameter applied already, equivalent to \x -&gt; 5 + x.  (+ 5) has applied the right parameter instead of the left.</div>
<div><br></div><div>If you have a parenthesized thing that starts or ends with an operator, it&#39;s a section.  Your example &quot;&gt; :t ((. sqr) .)&quot; has two of them, both partially applying (.).</div><div><br></div>
</div>-- <br><div dir="ltr"><div>brandon s allbery kf8nh                               sine nomine associates</div><div><a href="mailto:allbery.b@gmail.com" target="_blank">allbery.b@gmail.com</a>                                  <a href="mailto:ballbery@sinenomine.net" target="_blank">ballbery@sinenomine.net</a></div>
<div>unix/linux, openafs, kerberos, infrastructure          <a href="http://sinenomine.net" target="_blank">http://sinenomine.net</a></div></div><br>
</div>