<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jun 12, 2017 at 8:52 PM, John McCall <span dir="ltr">&lt;<a href="mailto:rjmccall@apple.com" target="_blank">rjmccall@apple.com</a>&gt;</span> wrote:<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><span class=""><div><br></div></span>We really do want to tie most of these features specifically to function calls.</div></div></blockquote><div><br></div><div><br></div><div>I&#39;m not sure if I understand what you mean. Do you mean that you really don&#39;t want these features to require changes to the type system?</div><div><br></div><div>My main problem/missing feature with function types in Swift 4 is not being able to express a generic function type as A -&gt; B, instead I would have to do this:</div><div>(A) -&gt; B</div><div>(A, B) -&gt; C</div><div>(A, B, C) -&gt; D</div><div>...</div><div>...</div><div>Ie it is impossible to fully express something that I normally see as just A -&gt; B.</div><div><br></div><div>Another example could be describing any two function types that are composable:</div><div>A -&gt; B and B -&gt; C</div><div><br></div><div>This also becomes impossible using Swift 4 function types:</div><div>(A) -&gt; B and (B) -&gt; C</div><div>(A, B) -&gt; C and (C) -&gt; D</div><div>(A) -&gt; (B, C) and (B, C) -&gt; D</div><div>...</div><div>...</div><div>... etc, etc, ...</div><div><br></div><div>One solution that is already possible is of course to only use functions with one (tuple) argument in these and similar scenarios. But that&#39;s still a bit awkward.</div><div><br></div><div>/Jens</div><div><br></div><div><br></div></div></div></div>