There is great feedback going on here. I'd like to consider a few things here: 

What if we name the whole thing `Existential<>` to sort out all confusion? This 
would allow `typealias Any = Existential<>`. 
Should `protocol A: Any<class>` replace `protocol A: class`? Or at least 
deprecate it. 
Do we need `typealias AnyClass = Any<class>` or do we want to use any class 
requirement existential directly? If second, we will need to allow direct 
existential usage on protocols (right now we only can use typealiases as a 
worksround).


-- 
Adrian Zubarev
Sent with Airmail 

Am 25. Mai 2016 um 23:26:25, Jan E. Schotsman via swift-evolution 
([email protected](mailto:[email protected])) schrieb:

> 
> 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
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to