<div dir="ltr">There&#39;s a difference between returning a void type and returning nothing. An instance of Void is a catch-all &#39;something&#39; which conforms to no protocols, which can be quite useful with generic types.</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 21, 2016 at 5:59 PM, Xiaodi Wu 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 dir="ltr">Quite frankly, I think the ship has long sailed for renaming Void.<div><div class="h5"><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 21, 2016 at 11:52 AM, Matthew Johnson 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"><br>
<br>
Sent from my iPad<br>
<span><br>
&gt; On Jul 21, 2016, at 11:42 AM, Daniel Steinberg via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br>
&gt;<br>
&gt; This may be a silly question - given that one of Swift’s design principles is to be a language for new programmers and for APIs to read like English phrases, should we replace the typealias of Void for the return type () with Nothing.<br>
<br>
</span>Nothing was one of the names considered for the bottom type that replaces @noreturn (<a href="https://github.com/apple/swift-evolution/blob/master/proposals/0102-noreturn-bottom-type.md" rel="noreferrer" target="_blank">https://github.com/apple/swift-evolution/blob/master/proposals/0102-noreturn-bottom-type.md</a>). I think it would be confusing to rename Void to Nothing.<br>
<br>
If we consider renaming it Unit is the obvious way to go (<a href="https://en.m.wikipedia.org/wiki/Unit_type" rel="noreferrer" target="_blank">https://en.m.wikipedia.org/wiki/Unit_type</a>)<br>
<div><div><br>
&gt;<br>
&gt; So<br>
&gt;<br>
&gt; f: ( input: Int) -&gt; Void<br>
&gt;<br>
&gt; becomes<br>
&gt;<br>
&gt; f: ( input: Int) -&gt; Nothing<br>
&gt;<br>
&gt; Instead of saying “f takes an Int and returns a Void” I read this as “f takes an Int and returns nothing”.<br>
&gt;<br>
&gt; I’ve been using f:(input: Int) -&gt; () because it’s easier to explain than Void to non-experienced programmers. Experienced programmers have no problem with Void. But Void seems to be something we’re using just because we have for a while - like x++ and C-style for loops.<br>
&gt;<br>
&gt; Best,<br>
&gt;<br>
&gt; Daniel<br>
&gt; _______________________________________________<br>
&gt; swift-evolution mailing list<br>
&gt; <a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
&gt; <a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
<br>
_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</div></div></blockquote></div><br></div></div></div></div>
<br>_______________________________________________<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/mailman/listinfo/swift-evolution</a><br>
<br></blockquote></div><br></div>