Excellent! I’m glad to see someone pick this up (and interest this time! I was 
disheartened earlier by lack of discussion when I proposed this)

One initial bit of feedback -  I believe if you have existential types, I 
believe you can define Sequence Element directly, rather than with a type 
alias. e.g.

protocol Sequence {
  associatedtype Element
  associatedtype Iterator: any<IteratorProtocol where 
IteratorProtocol.Element==Element>
  associatedtype SubSequence: any<Sequence where Sequence.Element == Element>
  …
}


> On May 22, 2016, at 6:18 PM, Austin Zheng via swift-evolution 
> <[email protected]> wrote:
> 
> 
> Speaking of which, for those who care I rewrote the draft proposal to attempt 
> a much more rigorous treatment of the semantics of the generalized 
> existential, including a discussion about existential type equivalence and 
> subtyping. It would be nice to see people poke holes in my logic so I can 
> patch them up. 
> https://github.com/austinzheng/swift-evolution/blob/az-existentials/proposals/XXXX-enhanced-existentials.md
>  
> <https://github.com/austinzheng/swift-evolution/blob/az-existentials/proposals/XXXX-enhanced-existentials.md>
> 
> Austin

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

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

Reply via email to