[swift-evolution] [Proposal] Tuple Extensions

Austin Zheng austinzheng at gmail.com
Tue May 3 23:50:56 CDT 2016

+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.

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. (


On Tue, May 3, 2016 at 9:47 PM, Joe Groff via swift-evolution <
swift-evolution at swift.org> wrote:

> > On May 3, 2016, at 9:13 PM, Developer via swift-evolution <
> swift-evolution at swift.org> wrote:
> >
> > 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.
> 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:
> https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160229/011666.html
> -Joe
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160503/8eaa8f5f/attachment.html>

More information about the swift-evolution mailing list