<div dir="ltr"><div>Bringing up an old idea, we could rewrite `rethrows` using Never and throws type specification:</div><div><br></div><div>func call&lt;T, E&gt;(block: () throws E -&gt; T) throws E -&gt; T</div><div><br></div><div>But this requires some compiler magic: non-throwing functions should effectively become functions throwing Never.</div><div><br></div><div>- Anton</div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-06-06 1:53 GMT+03:00 Charles Srstka <span dir="ltr">&lt;<a href="mailto:cocoadev@charlessoft.com" target="_blank">cocoadev@charlessoft.com</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"><span class=""><blockquote type="cite">On Jun 5, 2016, at 5:41 PM, Michael Peternell via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br></blockquote><div><blockquote type="cite"><br><div><div><blockquote type="cite" style="font-family:Helvetica;font-size:12px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">Am 05.06.2016 um 20:26 schrieb Антон Жилин via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;:<br><br>The following names were suggested: NoReturn, Bottom, None, Never.<br>I would pick None, because it looks like opposite to Any and fits nicely in generic types.<br></blockquote><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">I would like to call the type `Void`. `Void` is a type with zero possible values. The current `Void` would have to be renamed to `Unit`, the data type with exactly one possible value. Less C, More Haskell :) But wait, that&#39;s not really Haskell-ish, and it&#39;s not C-ish either.</span></div></div></blockquote></div><div><br></div></span><div>That is the most confusing possible thing that this could possibly be called. Seeing a Void return will cause anyone coming from a C, C++, ObjC, etc. background to think of something that is definitely *not* a no-return function.</div><span class="HOEnZb"><font color="#888888"><br><div>Charles</div><div><br></div></font></span></div></blockquote></div><br></div>