<div dir="ltr"><div class="markdown-here-wrapper" style=""><pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code class="hljs language-swift" style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;display:block;overflow-x:auto;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,248)"><span class="hljs-comment" style="color:rgb(153,153,136);font-style:italic">// Swift 2.2</span>
<span class="hljs-built_in" style="color:rgb(0,134,179)">print</span>([<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Int</span>].append.<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">dynamicType</span>)  <span class="hljs-comment" style="color:rgb(153,153,136);font-style:italic">//=&gt; inout Array&lt;Int&gt; -&gt; Int -&gt; ()</span>
<span class="hljs-built_in" style="color:rgb(0,134,179)">print</span>(<span class="hljs-built_in" style="color:rgb(0,134,179)">print</span>.<span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">dynamicType</span>)  <span class="hljs-comment" style="color:rgb(153,153,136);font-style:italic">//=&gt; (Array&lt;protocol&lt;&gt;&gt;, String, String) -&gt; ()</span>

<span class="hljs-comment" style="color:rgb(153,153,136);font-style:italic">// Swift 3</span>
<span class="hljs-built_in" style="color:rgb(0,134,179)">print</span>(type(of: [<span class="hljs-type" style="color:rgb(68,85,136);font-weight:bold">Int</span>].append))  <span class="hljs-comment" style="color:rgb(153,153,136);font-style:italic">//=&gt; (inout Array&lt;Int&gt;) -&gt; (Int) -&gt; ()</span>
<span class="hljs-built_in" style="color:rgb(0,134,179)">print</span>(type(of: <span class="hljs-built_in" style="color:rgb(0,134,179)">print</span>))  <span class="hljs-comment" style="color:rgb(153,153,136);font-style:italic">//=&gt; ((Array&lt;Any&gt;, String, String)) -&gt; ()</span>
</code></pre>
<p style="margin:0px 0px 1.2em!important">Question #1: Methods are still curried. If I’m not mistaken, there was an accepted proposal that uncurries methods. Is it going to be implemented for Swift 4 Stage 1?</p>
<p style="margin:0px 0px 1.2em!important">Question #2: Why nested tuple in type of <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">print</code>? Is it just a formatter bug, or… do functions still take tuples under the hood? If so, then perhaps, implementation needs to be modified to actually use new model, and not just make it look like it does.</p>
<div title="MDH:PGRpdj5gYGBzd2lmdDwvZGl2PjxkaXY+Ly8gU3dpZnQgMi4yPC9kaXY+PGRpdj5wcmludChbSW50
XS5hcHBlbmQuZHluYW1pY1R5cGUpICZuYnNwOy8vPSZndDsmbmJzcDtpbm91dCBBcnJheSZsdDtJ
bnQmZ3Q7IC0mZ3Q7IEludCAtJmd0OyAoKTwvZGl2PjxkaXY+cHJpbnQocHJpbnQuZHluYW1pY1R5
cGUpICZuYnNwOy8vPSZndDsmbmJzcDsoQXJyYXkmbHQ7cHJvdG9jb2wmbHQ7Jmd0OyZndDssIFN0
cmluZywgU3RyaW5nKSAtJmd0OyAoKTwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+Ly8gU3dpZnQg
MzwvZGl2PjxkaXY+PGRpdj5wcmludCh0eXBlKG9mOiBbSW50XS5hcHBlbmQpKSAmbmJzcDsvLz0m
Z3Q7Jm5ic3A7KGlub3V0IEFycmF5Jmx0O0ludCZndDspIC0mZ3Q7IChJbnQpIC0mZ3Q7ICgpPC9k
aXY+PGRpdj5wcmludCh0eXBlKG9mOiBwcmludCkpICZuYnNwOy8vPSZndDsmbmJzcDsoKEFycmF5
Jmx0O0FueSZndDssIFN0cmluZywgU3RyaW5nKSkgLSZndDsgKCk8L2Rpdj48L2Rpdj48ZGl2PmBg
YDwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+UXVlc3Rpb24gIzE6IE1ldGhvZHMgYXJlIHN0aWxs
IGN1cnJpZWQuIElmIEknbSBub3QgbWlzdGFrZW4sIHRoZXJlIHdhcyBhbiBhY2NlcHRlZCBwcm9w
b3NhbCB0aGF0IHVuY3VycmllcyBtZXRob2RzLiBJcyBpdCBnb2luZyB0byBiZSBpbXBsZW1lbnRl
ZCBmb3IgU3dpZnQgNCBTdGFnZSAxPzwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+UXVlc3Rpb24g
IzI6IFdoeSBuZXN0ZWQgdHVwbGUgaW4gdHlwZSBvZiBgcHJpbnRgPyBJcyBpdCBqdXN0IGEgZm9y
bWF0dGVyIGJ1Zywgb3IuLi4gZG8gZnVuY3Rpb25zIHN0aWxsIHRha2UgdHVwbGVzIHVuZGVyIHRo
ZSBob29kPyBJZiBzbywgdGhlbiBwZXJoYXBzLCBpbXBsZW1lbnRhdGlvbiBuZWVkcyB0byBiZSBt
b2RpZmllZCB0byBhY3R1YWxseSB1c2UgbmV3IG1vZGVsLCBhbmQgbm90IGp1c3QgbWFrZSBpdCBs
b29rIGxpa2UgaXQgZG9lcy48L2Rpdj4=" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0">​</div></div></div>