Once-and-for-all implementations come in many flavors.  For now, we have clear 
interest in making a limited subset of possible tuples properly Comparable.  
This will also make it easier to implement extensions to specific arities now 
and serve as a base for variadic generics if that is the path we take.  I could 
certainly see Future Swift™ allowing this to sit side-by-side with the finite 
version in this proposal, couldn't you?

extension (T...) : Equatable where T.Element : Equatable { }

func == <T : Equatable>(l : (T...), r : (T...)) -> Bool { /* .. */ }

~Robert Widmann

2016/05/04 0:54、Joe Groff <[email protected]> のメッセージ:

> 
>> On May 3, 2016, at 9:52 PM, Robert Widmann <[email protected]> wrote:
>> 
>> Trouble is that I don't want variadic generics without corresponding support 
>> from the type system which is untenable without HKTs (see last paragraph of 
>> proposal).  C++'s variadic implementation of std::tuple is not elegant to my 
>> mind, and would have no place in a library I could think of writing.
> 
> I think we'd keep tuples as a builtin type. Variadics would just let you 
> implement Equatable/Hashable/etc. once for all tuple arities. I don't see why 
> we'd need HKTs for that.
> 
> -Joe
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to