<div dir="ltr"><div>Thanks Brent,</div><div><br></div><div>I managed to confuse at least two people! I&#39;ve stated it in the grammar, but forgot to give an example:</div><div><br></div><div>===begin===</div><div><div>Multiple precedence relationships can be stated for a single precedence group. Example:</div><div>```swift</div><div>precedencegroup A { }</div><div>precedencegroup C { }</div><div>precedencegroup B { precedence(&gt; A) precedence(&lt; C) }</div><div>```</div><div>By transitivity, precedence of C becomes greater than precedence of A.</div></div><div>===end===</div><div><br></div><div>As you can see, your suggested syntax would not look good, because there can be any number of precedence declarations.</div><div><br></div><div>But I agree that bulkiness of my syntax is a problem.</div><div>I can think of two solutions:</div><div><br></div><div>1. Global-scope precedence relationships. Example:</div><div><br></div><div>precedencegroup B : associativity(left)</div><div>precedencerelation B &gt; A</div><div>precedencerelation B &lt; C</div><div>infix operator &lt;$&gt; : B</div><div><br></div><div>It&#39;s already included as an alternate solution.</div><div><br></div><div>2. Limit precedence relationships.</div><div><br></div><div>Do we really need a full-blown Directed Acyclic Graph?</div><div>Could `above` and `between` be enough?</div><div><br></div><div>Example:</div><div><br></div><div>precedencegroup B : between(A, C)</div><div><br></div><div>This is one of dark places of the proposal, obviously underdiscussed.</div><div>Are there practical situations other than `above` and `between`?</div><div>Do we really need unlimited relationships per one precedencegroup?</div><div><br></div><div>- Anton</div><div><br></div><div>Brent Royal-Gordon wrote:</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">I like this proposal, except for the `precedencegroup` syntax, which I think is a bit overwrought. Rather than this proposal&#39;s:<br><span class="" style="white-space:pre">        </span>precedencegroup Multiplicative {<br><span class="" style="white-space:pre">                </span>associativity(left)<br><span class="" style="white-space:pre">                </span>precedence(&gt; Additive)<br><span class="" style="white-space:pre">        </span>} <br>I would prefer to see:<br><span class="" style="white-space:pre">        </span>precedence Multiplicative &gt; Additive left<br>(Or possibly, if the `left` is deemed too inexplicable by itself, `associativity(left)`.) I don&#39;t really think the `precedence` keyword or the curly brackets bring much to the declaration, and dropping them allows us to replace the awkward compound `precedencegroup` with the shorter and equally explanatory `precedence`.</blockquote></div>