<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 Aug 2, 2016, at 12:18 AM, Félix Cloutier via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I disagree. The binary operators have properties that are comparable to arithmetic operators, and their precedence is easy to define as such. &amp; has multiplication-like properties (0*0=0, 0*1=0, 1*0=0, 1*1=1); | has addition-like properties (0+0=0, 0+1=1, 1+0=1, 1+1=2); ^ has subtraction-like properties (0-0=0, 0-1=-1, 1-0=1, 1-1=0), and their precedences are set accordingly (&amp; is multiplicative, | and ^ are additive).</div></div></blockquote><br class=""></div><div>&lt;extreme pedantry&gt;</div><div>`^` is actually the *addition* operator on Boolean rings[1]. &nbsp;`x | y` corresponds to the Boolean ring operation `x + y + xy`, which is definitely “addition-like” but isn’t addition.</div><div>&lt;/extreme pedantry&gt;</div><div><br class=""></div><div>Otherwise, spot on.</div><div><br class=""></div><div>– Steve</div><div><br class=""></div><div>[1] Of course, it’s *also* the subtraction operator, because `x = -x` for all members `x` of a Boolean ring (<a href="https://en.wikipedia.org/wiki/Boolean_ring" class="">https://en.wikipedia.org/wiki/Boolean_ring</a>), but one usually calls it “addition".</div></body></html>