Maybe we should adopt a Swift specific definition of existential, like

"An existential type is a type derived from Any with constraints of the kinds listed below:"
...
...
...

For example, the 5 kinds of constraint proposed by Austin Zheng.
Not very academic, but might save some discussion.

That would include the existing Protocol as type (no associated type or Self requirements). Also Any<ClassName> which equals the class (which hides type information through automatic upcasting of subclass instances).

A narrower definition might require protocols to be involved somehow and the resulting type must be new (not equivalent to a class or struct or enum).

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to