The very fact you have to make<br>`S := 42` invalid suggests a fundamental problem with it.<br>I can agree that the operator has some good use cases but it seems a tad dangerous to be so close to assignment. Hide it deeper in documentation and give it some more unusual symbol like @@, then you don't even need policing on parentheses because it's clearly the assign-return operator and not a varient of the assignment operator. <br><br>Yes `@@` is not an intuitive symbol but the prolific trio of `=`, `==` &amp; `===` is not intuitive either, the more intuitive == derived from the = as assignment paradigm would be something more like =?