<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 3 Apr 2016, at 11:45, Антон Жилин &lt;<a href="mailto:antonyzhilin@gmail.com" class="">antonyzhilin@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><span style="font-size:12.8px" class="">&gt; Assuming these are defined in separate modules, how do we determine the order of • and ~?</span><br class=""><div class=""><br class=""></div><div class="">By default, priority between any two operators is undefined. If two modules don't know about each other, but the user wishes to prioritize them, then he will write:</div><div class=""><br class=""></div><div class="">#precedence(<span style="font-size:12.8px" class="">•, lessThan:&nbsp;</span><span style="font-size:12.8px" class="">~</span>)</div><div class=""><br class=""></div><div class="">If&nbsp;<span style="font-size:12.8px" class="">•</span>&nbsp;suddenly wishes to cooperate with&nbsp;<span style="font-size:12.8px" class="">~</span>, then it will add directives:</div><div class=""><br class=""></div><div class="">#operator(<span style="font-size:12.8px" class="">~, fixity: infix, associativity: left)</span></div><div class="">#precedence(<span style="font-size:12.8px" class="">•, lessThan:&nbsp;</span><span style="font-size:12.8px" class="">~</span>)<br class=""></div><div class=""><br class=""></div><div class="">It doesn't matter if ~ or user have already added them: if they do not contain contradictory information, there will be no conflict.</div></div></div></blockquote><br class=""></div><div>Ah, I misunderstood then, so a warning/error will be raised if no precedence exists? Thanks for the explanation! I’ll probably still favour overkill brackets, but this makes sense.</div><div><br class=""></div><div>In any event I’m on +1 for the more standardised syntax and the switch to using #directives, makes a lot of sense since these are really just customisable compiler symbols.</div></body></html>