<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><span class="HOEnZb"><font color="#888888"><div style="font-family:helvetica,arial;font-size:13px">Jérémie Girault<br></div></font></span></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>