<html><head><style>
body {
        font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
        padding:1em;
        margin:auto;
        background:#fefefe;
}

h1, h2, h3, h4, h5, h6 {
        font-weight: bold;
}

h1 {
        color: #000000;
        font-size: 28pt;
}

h2 {
        border-bottom: 1px solid #CCCCCC;
        color: #000000;
        font-size: 24px;
}

h3 {
        font-size: 18px;
}

h4 {
        font-size: 16px;
}

h5 {
        font-size: 14px;
}

h6 {
        color: #777777;
        background-color: inherit;
        font-size: 14px;
}

hr {
        height: 0.2em;
        border: 0;
        color: #CCCCCC;
        background-color: #CCCCCC;
    display: inherit;
}

p, blockquote, ul, ol, dl, li, table, pre {
        margin: 15px 0;
}

a, a:visited {
        color: #4183C4;
        background-color: inherit;
        text-decoration: none;
}

#message {
        border-radius: 6px;
        border: 1px solid #ccc;
        display:block;
        width:100%;
        height:60px;
        margin:6px 0px;
}

button, #ws {
        font-size: 12 pt;
        padding: 4px 6px;
        border-radius: 5px;
        border: 1px solid #bbb;
        background-color: #eee;
}

code, pre, #ws, #message {
        font-family: Monaco;
        font-size: 10pt;
        border-radius: 3px;
        background-color: #F8F8F8;
        color: inherit;
}

code {
        border: 1px solid #EAEAEA;
        margin: 0 2px;
        padding: 0 5px;
}

pre {
        border: 1px solid #CCCCCC;
        overflow: auto;
        padding: 4px 8px;
}

pre > code {
        border: 0;
        margin: 0;
        padding: 0;
}

#ws { background-color: #f8f8f8; }


.bloop_markdown table {
border-collapse: collapse;  
font-family: Helvetica, arial, freesans, clean, sans-serif;  
color: rgb(51, 51, 51);  
font-size: 15px; line-height: 25px;
padding: 0; }

.bloop_markdown table tr {
border-top: 1px solid #cccccc;
background-color: white;
margin: 0;
padding: 0; }
     
.bloop_markdown table tr:nth-child(2n) {
background-color: #f8f8f8; }

.bloop_markdown table tr th {
font-weight: bold;
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }

.bloop_markdown table tr td {
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }

.bloop_markdown table tr th :first-child, table tr td :first-child {
margin-top: 0; }

.bloop_markdown table tr th :last-child, table tr td :last-child {
margin-bottom: 0; }

.bloop_markdown blockquote{
  border-left: 4px solid #dddddd;
  padding: 0 15px;
  color: #777777; }
  blockquote > :first-child {
    margin-top: 0; }
  blockquote > :last-child {
    margin-bottom: 0; }

code, pre, #ws, #message {
    word-break: normal;
    word-wrap: normal;
}

hr {
    display: inherit;
}

.bloop_markdown :first-child {
    -webkit-margin-before: 0;
}

code, pre, #ws, #message {
    font-family: Menlo, Consolas, Liberation Mono, Courier, monospace;
}


.send { color:#77bb77; }
.server { color:#7799bb; }
.error { color:#AA0000; }</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class="bloop_markdown"><p>To solve the issues with the destructuring I’d suggest to make the labels fully optional, so extracting inner tuples wouldn’t be a pain in the ass as it is right now.</p>

<pre><code class="swift">let tuple = (value: 0, point: (x: 0, y: 0, z: 0))

let (value, point: (x, y, z)) = tuple
</code></pre>

<p>Alternatively one could remove labels completely and let the compiler provide a suggestion for name of each value of the tuple destructuring, or you could your own names, while inner path would have some function-like syntax instead of confusing labels.</p>

<pre><code>let (value, point(x, y, z)) = tuple
</code></pre>

<p>The latter would mean that tuple destructuring would always remove the labels from rhs tuple.</p>

<p>In the example from above we’d get a change from:</p>

<p><code>(value: Int, point: (x: Int, y: Int, z:Int))</code> to <code>(Int, (Int, Int, Int))</code>.</p>

<p></p></div><div class="bloop_original_html"><style>body{font-family:Helvetica,Arial;font-size:13px}</style><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div> <br> <div id="bloop_sign_1493986685993072128" class="bloop_sign"><div style="font-family:helvetica,arial;font-size:13px">--&nbsp;<br>Adrian Zubarev<br>Sent with Airmail</div></div> <br><p class="airmail_on">Am 5. Mai 2017 um 14:07:11, André Videla (<a href="mailto:andre.videla@gmail.com">andre.videla@gmail.com</a>) schrieb:</p> <blockquote type="cite" class="clean_bq"><span><div><div></div><div>


<title></title>


<div dir="ltr">It really strikes me as an inconsistency in the type
system. The type system already enforces order in other labeled
expression like function calls
<div>
<p class="gmail-p1"><span class="gmail-s1">func</span> <span class="gmail-s2">takePair(x:</span> <span class="gmail-s3">Int</span><span class="gmail-s2">, y:</span>
<span class="gmail-s3">Int</span><span class="gmail-s2">) {
}</span></p>
<p class="gmail-p1"></p>
<p class="gmail-p1"><span class="gmail-s1">takePair</span><span class="gmail-s2">(y:</span>
<span class="gmail-s3">5</span><span class="gmail-s2">, x:</span>
<span class="gmail-s3">5</span><span class="gmail-s2">) //
error</span></p>
<p class="gmail-p1"></p>
<p class="gmail-p1" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures: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;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
</p>
<p class="gmail-p1" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures: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;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
<span class="gmail-s1">func</span><span class="gmail-s2">&nbsp;takePair(y:&nbsp;</span><span class="gmail-s3">Int</span><span class="gmail-s2">,
x:&nbsp;</span><span class="gmail-s3">Int</span><span class="gmail-s2">) { }</span></p>
<p class="gmail-p1" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures: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;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
</p>
<p class="gmail-p1" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures: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;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
</p>
<p class="gmail-p1" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures: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;text-decoration-style:initial;text-decoration-color:initial;background-color:rgb(255,255,255)">
</p>
<p style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures: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;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
</p>
<p class="gmail-p1" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures: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;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
<span class="gmail-s1">takePair</span><span class="gmail-s2">(y:&nbsp;</span><span class="gmail-s3">5</span><span class="gmail-s2">,
x:&nbsp;</span><span class="gmail-s3">5</span><span class="gmail-s2">) // ok, dispatches to the second function because it's
the only one that type checks with labels</span></p>
<p class="gmail-p1"><span class="gmail-s2">or enums</span></p>
<p class="gmail-p1"><span class="gmail-s1">enum</span> <span class="gmail-s2">Pair {</span></p>
<p class="gmail-p1"><span class="gmail-s2">&nbsp; &nbsp;</span>
<span class="gmail-s1">case</span> <span class="gmail-s2">point(x:</span> <span class="gmail-s3">Int</span><span class="gmail-s2">, y:</span>
<span class="gmail-s3">Int</span><span class="gmail-s2">)</span></p>
<p class="gmail-p1"><span class="gmail-s2">}</span></p>
<p class="gmail-p1"></p>
<p class="gmail-p1"><span class="gmail-s1">let</span> <span class="gmail-s2">p:</span> <span class="gmail-s4">Pair</span>
<span class="gmail-s2">= .point(y:</span> <span class="gmail-s5">3</span><span class="gmail-s2">, x:</span> <span class="gmail-s5">4</span><span class="gmail-s2">) // error</span></p>
<p class="gmail-p1"><span class="gmail-s2">Even if those features
are semantically different and have nothing to do with the
deconstruction of tuples they still suggest that labeling order is
important. And teaches the programmer to expect that the order of
labels is enforced.</span></p>
<p class="gmail-p1">If you assume that label order is important why
would you expect this to typecheck?</p>
<p class="gmail-p1"><span class="gmail-s2">let (y: a, x: b) = (x:
1, y: 2)&nbsp;</span></p>
<p class="gmail-p1"></p>
<p class="gmail-p1"><span class="gmail-s1">let</span> <span class="gmail-s2">pair: (y:</span> <span class="gmail-s3">Int</span><span class="gmail-s2">, x:</span>
<span class="gmail-s3">Int</span><span class="gmail-s2">) =
(x:</span> <span class="gmail-s4">1</span><span class="gmail-s2">,
y:</span> <span class="gmail-s4">2</span><span class="gmail-s2">)</span></p>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2017-05-05 13:29 GMT+02:00 Adrian Zubarev
via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;</span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">
<div class="m_6928501348719339136bloop_markdown">
<p>I’m confused here. You’re referring to this example:</p>
<pre><code class="m_6928501348719339136swift">let pair = (x: 3, y: 5)
let swapped: (y: Int, x: Int) = pair
</code></pre>
<p>In this case you’re shuffling/swapping the labels of the type
from:</p>
<p><code>(x: Int, y: Int)</code> to <code>(y: Int, x: Int)</code>,
which from my understanding of the whole pitch should be an error.
The tuple types may look similar, but because the labels have a
totally different order, I’d assume the types are different even if
they share the same labels and types.</p>
</div>
<div class="m_6928501348719339136bloop_original_html">
<div id="m_6928501348719339136bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
<span class=""><br></span></div>
<span class=""><br></span>
<div id="m_6928501348719339136bloop_sign_1493983534007591936" class="m_6928501348719339136bloop_sign">
<div style="font-family:helvetica,arial;font-size:13px">
<span class="">--&nbsp;<br>
Adrian Zubarev<br>
Sent with Airmail</span></div>
</div>
<span class=""><br></span>
<div>
<div class="h5">
<p class="m_6928501348719339136airmail_on">Am 5. Mai 2017 um
13:12:31, David Hart (<a href="mailto:david@hartbit.com">david@hartbit.com</a>) schrieb:</p>
<blockquote type="cite" class="m_6928501348719339136clean_bq">
<div style="word-wrap:break-word">
<div><span>But we’re not reordering labels, we’re assigning to a
different variable which has different variable names. And I think
it should work because we are not using the restructuring
syntax.</span>
<div><span><br></span>
<div>
<blockquote type="cite">
<div><span>On 5 May 2017, at 12:11, Adrian Zubarev &lt;<a href="mailto:adrian.zubarev@devandartist.com">adrian.zubarev@devandartist.<wbr>com</a>&gt;
wrote:</span></div>
<span><br class="m_6928501348719339136Apple-interchange-newline"></span>
<div>
<div class="m_6928501348719339136bloop_markdown" style="font-family:Helvetica,Arial;font-size:13px;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;background-color:rgb(254,254,254)">
<p style="margin:15px 0px"><span>I would assume the error is
correct, because if we ban reordering than labeled tuple types will
become incompatible if the labels are swapped, remember the strict
order or labels.<span class="m_6928501348719339136Apple-converted-space">&nbsp;</span></span></p>
<div style="margin:15px 0px"><br class="m_6928501348719339136webkit-block-placeholder"></div>
</div>
<div class="m_6928501348719339136bloop_original_html" style="font-family:Helvetica,Arial;font-size:13px;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;background-color:rgb(254,254,254)">
<div id="m_6928501348719339136bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;margin:0px">
<br></div>
<br>
<div id="m_6928501348719339136bloop_sign_1493978995833683968" class="m_6928501348719339136bloop_sign">
<div style="font-family:helvetica,arial;font-size:13px">
--&nbsp;<br>
Adrian Zubarev<br>
Sent with Airmail</div>
</div>
<br>
<p class="m_6928501348719339136airmail_on" style="margin:15px 0px">
Am 5. Mai 2017 um 12:08:59, David Hart via swift-evolution
(<a href="mailto:swift-evolution@swift.org" style="color:rgb(65,131,196);background-color:inherit;text-decoration:none">swift-evolution@swift.org</a>) schrieb:</p>
<blockquote type="cite" class="m_6928501348719339136clean_bq" style="margin:15px 0px">
<div dir="auto">
<div>
<div><span style="margin-top:0px;margin-bottom:0px"><br></span></div>
<div><span style="margin-top:0px;margin-bottom:0px"><br>
On 5 May 2017, at 10:59, Xiaodi Wu via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" style="color:rgb(65,131,196);background-color:inherit;text-decoration:none">swift-evolution@swift.org</a>&gt; wrote:<br>
<br></span></div>
<blockquote type="cite" style="margin:15px 0px">
<div style="margin-top:0px;margin-bottom:0px">
<div><span style="margin-top:0px;margin-bottom:0px">On Fri, May 5,
2017 at 03:11 André Videla &lt;<a href="mailto:andre.videla@gmail.com" style="color:rgb(65,131,196);background-color:inherit;text-decoration:none">andre.videla@gmail.com</a>&gt; wrote:<br></span>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<div style="margin-top:0px;margin-bottom:0px">
<div>
<div>
<div><span style="margin-top:0px;margin-bottom:0px"><br></span></div>
<div id="m_6928501348719339136m_1279692938464163656AppleMailSignature">
<span style="margin-top:0px;margin-bottom:0px">Just to make
sure:</span></div>
<div id="m_6928501348719339136m_1279692938464163656AppleMailSignature">
<span style="margin-top:0px;margin-bottom:0px"><br></span></div>
<div id="m_6928501348719339136m_1279692938464163656AppleMailSignature">
<span style="margin-top:0px;margin-bottom:0px">let pair = (x: 3, y:
5)</span></div>
<div id="m_6928501348719339136m_1279692938464163656AppleMailSignature">
<span style="margin-top:0px;margin-bottom:0px">Let swapped: (y:
Int, x: Int) = pair</span></div>
</div>
</div>
</div>
</blockquote>
<div><span style="margin-top:0px;margin-bottom:0px"><br></span></div>
<div><span style="margin-top:0px;margin-bottom:0px">Error.</span></div>
</div>
</div>
</div>
</blockquote>
<div><span style="margin-top:0px;margin-bottom:0px"><br></span></div>
<div><span style="margin-top:0px;margin-bottom:0px">Why error here?
In this case. It's not a label but he type.</span></div>
<span style="margin-top:0px;margin-bottom:0px"><br></span>
<blockquote type="cite" style="margin:15px 0px">
<div style="margin-top:0px;margin-bottom:0px">
<div>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<div style="margin-top:0px;margin-bottom:0px">
<div>
<div>
<div id="m_6928501348719339136m_1279692938464163656AppleMailSignature">
</div>
<div id="m_6928501348719339136m_1279692938464163656AppleMailSignature">
<span style="margin-top:0px;margin-bottom:0px">Let (y: x1, x: y1) =
pair</span></div>
</div>
</div>
</div>
</blockquote>
<div><span style="margin-top:0px;margin-bottom:0px"><br></span></div>
<div><span style="margin-top:0px;margin-bottom:0px">Error.</span></div>
<div><span style="margin-top:0px;margin-bottom:0px"><br></span></div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<div style="margin-top:0px;margin-bottom:0px">
<div>
<div>
<div id="m_6928501348719339136m_1279692938464163656AppleMailSignature">
</div>
<div id="m_6928501348719339136m_1279692938464163656AppleMailSignature">
<span style="margin-top:0px;margin-bottom:0px">Let (x: x2, y: y2) =
pair</span></div>
</div>
</div>
</div>
</blockquote>
<div><span style="margin-top:0px;margin-bottom:0px"><br></span></div>
<div><span style="margin-top:0px;margin-bottom:0px">With the
revised pitch that no longer prohibits all labels, x2 is 3 and y2
is 5. In the original version, error.</span></div>
<div><span style="margin-top:0px;margin-bottom:0px"><br></span></div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<div style="margin-top:0px;margin-bottom:0px">
<div>
<div>
<div id="m_6928501348719339136m_1279692938464163656AppleMailSignature">
</div>
<div id="m_6928501348719339136m_1279692938464163656AppleMailSignature">
<span style="margin-top:0px;margin-bottom:0px">Let (x3, y3) =
pair</span></div>
</div>
</div>
</div>
</blockquote>
<div><span style="margin-top:0px;margin-bottom:0px"><br></span></div>
<div><span style="margin-top:0px;margin-bottom:0px">x3 is 3 and y3
is 5.</span></div>
<div><span style="margin-top:0px;margin-bottom:0px"><br></span></div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<div style="margin-top:0px">
<div>
<div>
<div id="m_6928501348719339136m_1279692938464163656AppleMailSignature">
<span style="margin-top:0px;margin-bottom:0px">After the change,
What do (x_n, y_n) print and Which assignments are
errors?</span></div>
<div id="m_6928501348719339136m_1279692938464163656AppleMailSignature">
<span style="margin-top:0px;margin-bottom:0px"><br>
Andre Videla&nbsp;</span></div>
</div>
</div>
</div>
<div>
<div>
<div>
<div><span style="margin-top:0px;margin-bottom:0px"><br>
On 5 May 2017, at 09:31, Xiaodi Wu via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" style="color:rgb(65,131,196);background-color:inherit;text-decoration:none">swift-evolution@swift.org</a>&gt; wrote:<br>
<br></span></div>
<blockquote type="cite" style="margin:15px 0px">
<div style="margin-top:0px;margin-bottom:0px">
<div><span style="margin-top:0px;margin-bottom:0px">On Fri, May 5,
2017 at 2:28 AM, Adrian Zubarev<span class="m_6928501348719339136Apple-converted-space">&nbsp;</span><span>&lt;<a href="mailto:adrian.zubarev@devandartist.com" style="color:rgb(65,131,196);background-color:inherit;text-decoration:none">adrian.zubarev@<wbr>devandartist.com</a>&gt;</span><span class="m_6928501348719339136Apple-converted-space">&nbsp;</span>wrote:<br>
</span>
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
<div style="margin-top:0px;margin-bottom:0px;word-wrap:break-word">
<div class="m_6928501348719339136m_1279692938464163656m_-5555134904584300890bloop_markdown">
<p style="margin:15px 0px">I’m not arguing to remove all labels in
Swift. Labels are great, this is a fact for sure. The point I was
trying to make is that labels in tuples how either a meaning or not
at all.</p>
<pre style="margin:15px 0px;font-family:Menlo,Consolas,'Liberation Mono',Courier,monospace;font-size:10pt;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;background-color:rgb(248,248,248);color:inherit;border:1px solid rgb(204,204,204);overflow:auto;padding:4px 8px;word-break:normal;word-wrap:normal"><code class="m_6928501348719339136m_1279692938464163656m_-5555134904584300890swift" style="font-family:Menlo,Consolas,'Liberation Mono',Courier,monospace;font-size:10pt;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;background-color:rgb(248,248,248);color:inherit;border:0px;margin:0px;padding:0px;word-break:normal;word-wrap:normal">// This is a shortcut for the tuple type `(x: Int, y: Int)`
let foo = (x: 0, y: 0)     

// In this case the labels are only used for description,     
// they do not server any benefit here are most likely redundant
let (x: x, y: y) = foo     
</code></pre>
<p style="margin:15px 0px">Labels elsewhere are a different story
and I do support the cosmetic addition Chris Lattner sketched out
here:<span class="m_6928501348719339136Apple-converted-space">&nbsp;</span><a href="https://lists.swift.org/pipermail/swift-evolution-announce/2016-July/000233.html" style="color:rgb(65,131,196);background-color:inherit;text-decoration:none">https://lists.swift.org/<wbr>pipermail/swift-evolution-<wbr>announce/2016-July/000233.html</a></p>
<p style="margin:15px 0px">However this is about closures and not
tuples, I don’t think this would anyhow affect the removal of
labels in tuple destructuring.</p>
<p style="margin:15px 0px">Plus I don’t see this to create an
inconsistent in Swift, because as I already said, labels in tuple
destructuring are useless.</p>
</div>
</div>
</blockquote>
<div>How come? I just illustrated their use. They help humans write
correct code by allowing the compiler to check an assertion that
the human knows which labels go with which positions in the
tuple.</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
<div>
<div>
<div>
<blockquote type="cite" style="margin:15px 0px">
<div style="margin-top:0px;margin-bottom:0px">
<span>______________________________<wbr>_________________</span></div>
</blockquote>
</div>
</div>
</div>
<div style="margin-bottom:0px">
<div>
<div>
<blockquote type="cite" style="margin:15px 0px">
<div style="margin-top:0px;margin-bottom:0px"><br>
<span>swift-evolution mailing list</span><br>
<span><a href="mailto:swift-evolution@swift.org" style="color:rgb(65,131,196);background-color:inherit;text-decoration:none">swift-evolution@swift.org</a></span><br>
<span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" style="color:rgb(65,131,196);background-color:inherit;text-decoration:none">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a></span><br>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
<blockquote type="cite" style="margin:15px 0px">
<div style="margin-top:0px;margin-bottom:0px">
<span>______________________________<wbr>_________________</span><br>

<span>swift-evolution mailing list</span><br>
<span><a href="mailto:swift-evolution@swift.org" style="color:rgb(65,131,196);background-color:inherit;text-decoration:none">swift-evolution@swift.org</a></span><br>
<span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" style="color:rgb(65,131,196);background-color:inherit;text-decoration:none">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a></span><br>
</div>
</blockquote>
______________________________<wbr>_________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" style="color:rgb(65,131,196);background-color:inherit;text-decoration:none">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" style="color:rgb(65,131,196);background-color:inherit;text-decoration:none">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br>
</div>
</div>
</blockquote>
</div>
<div class="m_6928501348719339136bloop_markdown" style="font-family:Helvetica,Arial;font-size:13px;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;background-color:rgb(254,254,254)">
</div>
</div>
</blockquote>
</div>
<br></div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
<div class="m_6928501348719339136bloop_markdown"></div>
</div>
<br>
______________________________<wbr>_________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>

<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br>

<br></blockquote>
</div>
<br></div>


</div></div></span></blockquote></div><div class="bloop_markdown"><p></p></div></body></html>