<div dir="ltr"><div>In Haskell, fixity is global. There are ten levels. You can't stick something between two levels, and you can't subvert the order of the levels. If you want something that binds before >>= but after the logical operators && and ||, you're out of luck -- unless you're willing to define synonyms for && and || that bind faster. (Tidal, a music DSL written in Haskell (it's on Hackage), exemplifies that problem with its |+| operator.)</div><div><br></div><div>Conceptually, by contrast, fixity is local. The arithmetic operators (* + - / and **), for instance, have a certain fixity defined relative to each other, and that order does not, I believe, in the mind of most users extend beyond arithmetic.</div><div><br></div><div>Does anybody else think it would be nice if a library's author had only to decide its operators' precedence relative to each other, and could let users decide for themselves how fast its operators should bind relative to operators from another library?</div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Jeffrey Benjamin Brown</div></div>
</div>