<div dir="ltr">There's an easy to read paper by Okasaki titled "Even higher-order functions for parsing or Why would anyone ever want to use a sixth-order function?". Unfortunatly I can't find a link to a non-paywalled version. It shows how parser combinators themselves use rank-3 types and how defining a monad instance requires rank-6.<br><br><div class="gmail_quote"><div dir="ltr">On Tue, Apr 3, 2018 at 1:05 AM Joachim Durchholz <<a href="mailto:jo@durchholz.org">jo@durchholz.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Am 03.04.2018 um 08:54 schrieb Timotej Tomandl:<br>
> Ok, I thought about it a bit more and realized mask in Control.Exception<br>
> is the one where rank-3 is necessary, which is the example I was looking<br>
> for.<br>
<br>
Given your newly acquired insights, do you expect that there will be<br>
ultimately a valid example for higher ranks?<br>
Is there a theoretical limit?<br>
Or a practical one? E.g. it might be too awkward to mentally handle<br>
higher-rank polymorphism - or maybe there's no real mental difference<br>
when dealing with higher-ranked polymorphism, I don't know because I<br>
didn't have to deal with that yet, so I'm curious.<br>
<br>
 > Sorry for the spam.<br>
<br>
Actually it was interesting.<br>
<br>
Regards,<br>
Jo<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div></div>