<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style></head><body style="word-wrap:break-word"><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">At the moment I’m only considering the zero-cardinality tuple and don’t want to address the implicit destructuring issues.</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">Therefore you are right with foo(fnA) and foo(fnB); but foo(fnC) won’t compile.</div><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><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">My goal is to add small propositions with simple rules to have better compatilibty and a more natural way to approach the code.</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">This could be addressed by another proposition (not on this topic)</div> <br> <div id="bloop_sign_1497287905689115136" class="bloop_sign"><div style="font-family:helvetica,arial;font-size:13px">—</div><div><font face="Helvetica" size="1">very short reply expected - <a href="http://vsre.info">vsre.info</a></font></div><div style="font-family:helvetica,arial;font-size:13px">Jérémie Girault<br></div></div> <br><p class="airmail_on">On 12 juin 2017 at 19:03:51, Jens Persson (<a href="mailto:jens@bitcycle.com">jens@bitcycle.com</a>) wrote:</p> <blockquote type="cite" class="clean_bq"><span><div><div></div><div>


<title></title>


<div dir="ltr">I have just had a quick look but I&#39;m interested in
what you think about the following example, which currently behaves
like the comments say:
<div><br></div>
<div>
<div>func foo&lt;A&gt;(_ fn: (A) -&gt; Void) {}</div>
<div>func fnA() {}</div>
<div>func fnB(_ a: Int) {}</div>
<div>func fnC(_ a: Int, _ b: Int) {}</div>
<div>foo(fnA) // Compiles in Swift 3, error in Swift 4</div>
<div>foo(fnB) // Compiles in both Swift 3 and Swift 4</div>
<div>foo(fnC) // Compiles in Swift 3, error in Swift 4</div>
</div>
<div><br></div>
<div>From what I read in your proposal, I assume that you want
foo(fnA) to compile in both.</div>
<div>But if so, don&#39;t you think foo(fnC) should also compile in
both?</div>
<div><br></div>
<div>/Jens</div>
<div><br></div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, Jun 12, 2017 at 10:48 AM, Jérémie
Girault via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">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 style="word-wrap:break-word">
<div id="m_-7474317349927240091bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
Hi here,</div>
<div id="m_-7474317349927240091bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
<br></div>
<div id="m_-7474317349927240091bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
As I tested swift4 in xcode9b1 I noticed a lot of regressions about
tuples usage.</div>
<div id="m_-7474317349927240091bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
<br></div>
<div id="m_-7474317349927240091bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
After documenting myself about the changes which happened, I
thought that they could be improved. Instead of fighting these
propositions (which make sense), I wanted create a few proposal
which would improve these recent changes with a few simple
rules.</div>
<div id="m_-7474317349927240091bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
<br></div>
<div id="m_-7474317349927240091bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
My propositions are based on the recent decisions and in the
continuation of SE-0110. The first one is about Void.</div>
<div id="m_-7474317349927240091bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
Void is historically defined as the type of the empty tuple. The
reason of this is that arguments were initially considered as
tuple. If this is no more the case, then it’s no more a reason to
keep Void as an empty tuple.</div>
<div id="m_-7474317349927240091bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
<br></div>
<div id="m_-7474317349927240091bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
I think that by having a few rules around tuples of cardinality 0
and 1 and also arguments list, we could greatly improve source
compatibility and keep a lot of what makes swift great when using
functional style and generics.</div>
<div id="m_-7474317349927240091bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
<br></div>
<div id="m_-7474317349927240091bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
I drafted a proposal that would allow more source compatibility and
type consistency and would enjoy discussing it with you, in order
to improve it : </div>
<div id="m_-7474317349927240091bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
<br></div>
<div id="m_-7474317349927240091bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
<a href="https://github.com/jeremiegirault/swift-evolution/blob/master/proposals/NNNN-flatten-void.md" target="_blank">https://github.com/<wbr>jeremiegirault/swift-<wbr>evolution/blob/master/<wbr>proposals/NNNN-flatten-void.md</a></div>
<div id="m_-7474317349927240091bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
<br></div>
<div id="m_-7474317349927240091bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
Let me know what you think about it,</div>
<br>
<div id="m_-7474317349927240091bloop_sign_1497256557849104896" class="m_-7474317349927240091bloop_sign">
<div style="font-family:helvetica,arial;font-size:13px">—</div>
<div><font face="Helvetica" size="1">very short reply expected -
<a href="http://vsre.info" target="_blank">vsre.info</a></font></div>
<div style="font-family:helvetica,arial;font-size:13px">
<span class="HOEnZb"><font color="#888888">Jérémie
Girault<br></font></span></div>
</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" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br>

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


</div></div></span></blockquote></body></html>