<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=""><div><blockquote type="cite" class=""><div class="">On Aug 31, 2017, at 5:51 PM, André “Zephyz” Videla &lt;<a href="mailto:andre.videla@gmail.com" class="">andre.videla@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">That is exactly what I argue should be avoided. When you see `+` you don’t expect it to throw.</span></div></blockquote></div><div class=""><br class=""></div><div class="">Perhaps not, but the language makes you mark the expression with `try` to make that fact clear. And your specific suggestion of `+!` is misleading—`!` usually implies &nbsp;something that can fail *by asserting*, which plain `+` actually *does* but a throwing `+` does not.</div><div class=""><br class=""></div><div class="">In my view, an operator is just a funny-looking name. `+`, without any further context, does not imply an exact semantic with properties like commutativity any more than `add(_:)` does. I don't think anyone working on Swift seriously believes that every method name ought to be exclusively associated with one and only one protocol, so I see no reason that every operator ought to be, either.</div><div class=""><br class=""></div><div class="">Protocols describe precise, formal semantics; operators describe general kinds of operations. Let protocols be protocols and operators be operators.</div><br class=""><div class="">
<span class="Apple-style-span" style="border-collapse: separate; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; line-height: normal; border-spacing: 0px;"><div class=""><div style="font-size: 12px; " class="">--&nbsp;</div><div style="font-size: 12px; " class="">Brent Royal-Gordon</div><div style="font-size: 12px; " class="">Architechies</div></div></span>

</div>
<br class=""></body></html>