<div dir="ltr">First of all, I suggest that we remove `assignment` from Swift 2.2 in any case. It has been deprecated for long enough.<div><br></div><div>Operator declarations are always global.</div><div>Operator declarations of the same operator are always in conflict, even if in different modules.</div><div>Therefore, I believe, operators would be best defined using directive syntax:</div><div><br></div><div>#operator(&lt;&gt;, fixity: infix, associativity: left, precedence: 100)</div><div>#operator(!, fixity: postfix)</div><div><br></div><div>It&#39;s obvious from this declaration that it must be global and must not be duplicated even in different modules (remember C macros?).</div><div>It would allow us to remove operator declaration grammar entirely, add a directive instead. Simplification of grammar and consistency is one of directions for Swift 2.2 and Swift 3.0.</div><div><br></div><div>Why not curly braces? Curly braces in Swift declarations are used to declare multiple &quot;child&quot; entities. On the other hand, attributes and directives are used with *preudo-arguments*.</div>I also want to remind the main difference between attributes and directives in Swift. @-attributes always stand before something and modify it. #-directives are stand-alone things on themselves.<div><br></div><div>- Anton</div></div>