I regret mentioning existentials; I am aware that an existential that isn't sufficiently constrained will never be able to provide the same guarantees as a generic type variable. My argument is that even a partially constrained existential is useful if there is a useful set of APIs that don't touch the associated types in question. I do not believe that they fulfill the same role as generics, and I apologize for writing a response that strongly implied they were.
That being said, my opinion regarding this suggestion is still this: [Foo] is not an array, Collection<Foo> is not a generic protocol, and I am strongly against any sort of compiler magic that makes those types mean anything other than what they appear to be. Austin If this rule: > > > The generalized existentials proposal goes out of its way to be explicit > about the fact that only type safe operations would be visible through the > existential. > > Is trying to say that this isn't the case because APIs using the > collection's `Index` are not exposed on an `AnyCollection`, well, then I'm > not sure what `AnyCollection` is actually supposed to be used for. > > -- > Brent Royal-Gordon > Architechies > >
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution