+1 for having to mark calls to `inout` parameters with `inout` rather than `&amp;`, `&amp;` is well entrenched in its C usage.<div><br></div><div>For repurposing of `&amp;`; if you had library functions:<div><br></div><div><div><font size="2"><span style="background-color:rgba(255,255,255,0)">    class Reference&lt;T&gt; {</span></font></div><div><font size="2"><span style="background-color:rgba(255,255,255,0)">        let value: T</span></font></div><div><font size="2"><span style="background-color:rgba(255,255,255,0)">        init(value: T) { self.value = value }</span></font></div><div><font size="2"><span style="background-color:rgba(255,255,255,0)">    }</span></font></div></div><div><font size="2"><span style="background-color:rgba(255,255,255,0)">    </span></font></div><div><div><font size="2"><span style="background-color:rgba(255,255,255,0)">    class MutableReference&lt;T&gt; {</span></font></div><div><font size="2"><span style="background-color:rgba(255,255,255,0)">        var value: T</span></font></div><div><font size="2"><span style="background-color:rgba(255,255,255,0)">        init(value: T) { self.value = value }</span></font></div><div><font size="2"><span style="background-color:rgba(255,255,255,0)">    }</span></font></div></div><div><br></div><div>Then when you obtained something from a C library you wrapped it:</div><div><br></div><div>    let rect = MutableReference(CGRectMake(0,0,0,0))</div><div><br></div><div>Wouldn&#39;t that cover most use cases and be simpler than implementing a new `&amp;`?</div><div><br></div><div>The above classes would also have general purpose usage reference semantics rather than `inout` semantics, e.g.:</div><div><br></div><div>    let array = [MutableArray(1), MutableArray(2)]</div><div><br></div><div>`array` can be passed to threads, used in closures, etc. without the copy in and copy out semantics being surprising and unpredictable.<br><br>On Thursday, 7 January 2016, Trent Nadeau via swift-evolution &lt;<a href="javascript:_e(%7B%7D,&#39;cvml&#39;,&#39;swift-evolution@swift.org&#39;);" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>+1</div><div><br></div><div>Chris Lattner mentioned that he wants to have a version of Rust&#39;s borrowing syntax eventually. With this change, if we get that, then we keep a very symmetric syntax:</div><div><font face="monospace, monospace">func foo(x: inout T) </font><font face="arial, helvetica, sans-serif">called as</font><font face="monospace, monospace"> foo(inout myT)</font></div><div><font face="monospace, monospace">func foo(x: &amp;T) </font><font face="arial, helvetica, sans-serif">called as</font><font face="monospace, monospace"> foo(&amp;myT)</font></div><div><font face="monospace, monospace">func foo(x: &amp;mut T) </font><font face="arial, helvetica, sans-serif">called as</font><font face="monospace, monospace"> foo(&amp;mut myT)</font></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 6, 2016 at 10:42 AM, Tahoma Toelkes via swift-evolution <span dir="ltr">&lt;<a>swift-evolution@swift.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div>+1</div><div><br></div><div>My sentiments exactly.  As I was catching up on this thread, this was almost exactly the syntax I was already considering mentioning when I encountered Erica&#39;s reply.</div><div><br></div><div>I don&#39;t know whether it will meet all requirements; however, from a readability perspective in both declarations and function type signatures, this syntax is the first of the suggestions that feels clear to me.</div><div><br><div>-- Tahoma</div></div><div><br>On Dec 21, 2015, at 11:20 AM, Ricardo Parada via swift-evolution &lt;<a>swift-evolution@swift.org</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><div><br></div><blockquote type="cite"><div>On Dec 19, 2015, at 4:10 PM, Erica Sadun &lt;<a>erica@ericasadun.com</a>&gt; wrote:</div><br><div><div style="word-wrap:break-word"><div>What would the ramifications of the following be? Each addresses the &quot;confusable with labeling&quot; issue but preserve the inout keyword.</div><div><br></div><div><font face="Courier">func foo(x: inout Int)</font></div></div></div></blockquote><blockquote type="cite">...<br></blockquote><div><br></div>I think I like this one better than all the others. <div>I have not analyzed all the implications of having it there but it feels right. <br><br></div><div><br></div>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=nOyyu1luPOjzFvdBwEG1HV4sgQnzthF2g0P1P-2BlVfYA6zqqvBAeHxZRmBrKD99TdxZui-2FlQ-2FlxUOWNDsQw6DSqV-2FHeLpsleLcfouIk0Ny0mJ6fSttsHwELL5ZfJCoJlOl2T6UbKt6YRg5y8ZO7lmkMCXbVTce3xY-2Fl8QevWJw7q2vwnxpt-2BSJ20C7sTHOnIR0dUI5PfUQXXVXYoA2nUrX6Ek6pXbOLOu2GsusTyRQZM-3D" alt="" width="1" height="1" border="0" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important">

</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>swift-evolution mailing list</span><br><span><a>swift-evolution@swift.org</a></span><br><span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br></div></blockquote>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=PLxfwCJEjPeWvUDZqEq2h1e5BRs1s4m99sV2gcalz-2FQE0w4FHpr7AuZrHYZKL6qbVJtWzFqTxmDII-2BYM6pgzZhrc1D-2Bqmn-2BYFZZtDCFXacT7ZhpP2P1w2eZL4AuitTGL-2F4EMSFAqlfxUGnASdSaAbc2jjjZsyBiGi634xokvn9JUHPCngIuiJJcCaZPj4N2wSM7rwT0D5m4-2BZ0bdXZ69NSUM1cgKsqE7VpbGNmspAo8-3D" alt="" width="1" height="1" border="0" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important">
</div>
<br>_______________________________________________<br>
swift-evolution mailing list<br>
<a>swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Trent Nadeau</div>
</div></div>
<img src="https://u2002410.ct.sendgrid.net/wf/open?upn=Vm9j-2B2K6zLqxUFTO82XA8HV2TThDz5lA3-2F-2Fpeujw7DRrnHRFf0GOFEKUCJVz7KiWRalc1xMYRCH4FnLM-2BxOWSi80ESBiTMZCf7ANrq6DIl7sBqPVhYuKtO7I9CSwp5TXxeLztduVAoMreFbl-2BzjrfqLnKtJTnmJw8D9jxq0fLpje3-2FygsPXby8lNRlgttKcAQbDiY3fjEncInFiYaFaR2A05rUXsB8VSbxucXpq-2Be3s-3D" alt="" width="1" height="1" border="0" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important">
</blockquote></div></div>
<br><br>-- <br>  -- Howard.<br><br>