[swift-evolution] Tuple conversion and type composition

Tino Heth 2th at gmx.de
Sun Jan 31 06:28:17 CST 2016

> I'd like a a way to concatenate tuple types together:
> typealias ABCD = (A,B)+(C,D) // Same as (A,B,C,D)
I don't like the use of "+" for concatenation, but giving more power to tuples would be neat… you just need to find examples with convincing motivation ;-)
Obviously, the value of tuple-operation increases with the prevalence of tuples in language and libraries, so I wouldn't be surprised if their importance rises in the future (and maybe we can think of nice ways to combine tuple-related ideas).

> Also a way to allow tuples to be converted to other tuples that are the same when flattened:
> (a,(b,c),d) as ((a,b),(c,d))
It would be cool if such a concept ("compiler, please check if those two types have a compatible memory-layout, and if that is the case, let me use them interchangeable when I tell you to do so) could be extended to structs — that could solve the problem of different implementations of fundamental types nicely.

That leads me to an unrelated thought:
It seems to me there is a duality between methods and closures on one side, and structs and tuples on the other — tuples feel very much like anonymous structs (restricted by the fact that you cannot add methods like custom getters & setters). It's not related to you proposal, but I wonder if there are implications visible from this point of view...

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160131/6669f648/attachment.html>

More information about the swift-evolution mailing list