> On 17 Aug 2016, at 00:34, Charles Srstka via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
>> On Aug 16, 2016, at 5:30 PM, Xiaodi Wu <xiaodi...@gmail.com 
>> <mailto:xiaodi...@gmail.com>> wrote:
>> 
>> On Tue, Aug 16, 2016 at 5:19 PM, Charles Srstka via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>>> On Aug 16, 2016, at 5:13 PM, David Sweeris <daveswee...@mac.com 
>>> <mailto:daveswee...@mac.com>> wrote:
>>> 
>>> Any proposal that expands the power of generic programming gets an almost 
>>> automatic +1 from me.
>>> 
>>> I can't think of any circumstances in which I wouldn't want to use ":==" 
>>> instead of ":". Are there any downsides to expanding ":" to mean what ":==" 
>>> does?
>>> 
>>> Incidentally, I kinda thought things either already worked like this, or 
>>> would work like this after generics were "completed", but I can't tell you 
>>> why I thought that.
>> 
>> Me neither, but the last time I proposed that, people stated that there were 
>> some cases where this could not work. No concrete examples were given, but I 
>> assume it probably has something to do with associated type wackiness. :== 
>> seems like a workable compromise to me.
>> 
>> If an existential of a protocol P doesn't conform to itself, what can you do 
>> inside the body of a generic function that has a generic constraint 
>> specified with `:==`? In other words, what would we know about what's in 
>> common between such an existential of a protocol and types that conform to 
>> the protocol?
> 
> My proposal is that in such cases, using :== would lead to a compiler error.
> 
> Charles
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
I think the point is that existentials not conforming to their protocols is the 
underlying reason this doesn’t work already.

From the previous thread:
> There are a couple of reasons this is the case.  IIRC in some cases it 
> actually isn't possible for the existential to conform to the protocol in a 
> sound way.  And even when it is possible, I believe it has been said that it 
> is more difficult to implement than you might think.  Hopefully the situation 
> will improve in the future but I'm not aware of any specific plans at the 
> moment.

It seems like a reasonably straightforward axiom. I would be interested to 
learn more about those edge-cases.

Karl
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to