<div dir="ltr">+1 to the interaction between variadic generics and extension of tuple types. But this is a proposal I hope to see accepted and implemented at some point.<div><br></div><div>Is there an official formatted version of the manifesto? I put together a gist with markdown formatting but would much rather direct people to an official copy if one exists. (<a href="https://gist.github.com/austinzheng/7cd427dd1a87efb1d94481015e5b3828">https://gist.github.com/austinzheng/7cd427dd1a87efb1d94481015e5b3828</a>)</div><div><br></div><div>Austin</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 3, 2016 at 9:47 PM, Joe Groff via swift-evolution <span dir="ltr"><<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On May 3, 2016, at 9:13 PM, Developer via swift-evolution <<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>> wrote:<br>
><br>
> I’ve been contemplating this idea for a while now, mostly because I think it’s a very important feature, but also because I can’t find a single example of a programming language getting it completely right. In Swift, the motif of tuples throughout the language would lead one to think that they have some kind of special status in the language. Yet, tuples are an opaque concept exposed by the compiler to the end user with no opportunity for extension. Languages that have tried to expose tuples to their users for extension have done so in less than ideal ways (see Tuple1-Tuple22 Scala, Haskell’s hard limit on tuples, Rust’s limitations for std::tuple), yet each implementation has something to offer a possible Swift implementation. I see only one course of action that will bring us extensible tuples in a manner that is compatible with Swift and its overall design philosophy. To that end, I have drawn up a draft proposal for generic tuple extensions that I will submit to swift-evolution shortly.<br>
<br>
</span>Tuples are a special case of a more general shortcoming, which is that you can't extend *any* of the builtin structural types, not only tuples but metatypes, function types, and existentials. I don't see any reason to address this for tuples only. In the particular case of tuples, I think you really want variadic generic parameters too, to be able to extend them to arbitrary arities without having to waste space generating boilerplate for a bunch of fixed arities. Both structural type extensions and variadic generics are covered in Doug's omnibus generics roadmap: <a href="https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160229/011666.html" rel="noreferrer" target="_blank">https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160229/011666.html</a><br>
<br>
-Joe<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>
</blockquote></div><br></div>