<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Additive proposals are out of scope for Swift 3; you&#39;ll have better luck if you come back around August and propose these one at a time.</div><div><br></div><div>I don&#39;t see the need for &quot;poor man&#39;s existentials&quot; - existential improvements are out of scope for the next release, and there are already a bunch of designs floating around. You might want to search the archives for more details. #3 falls out of a proper implementation of existential types that support protocols with associated types and self requirements.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
</span>If the storage implements `Equatable`, this problem should be solved, right?<br>
<br>
Anyway (punch-line following), although I don’t know how exactly the low-level Value-Witness-Table works, but if it works as I would expect, then there should be only exactly one entry per „equal“ storage, and all collection types with the same data point to the same reference (which is very memory efficient and table lookup using hashing should be constant time). If this is correct, a check for `===` suffices. AFAIK, the low-level swift implementation already checks for `===` on value types that are stored on the heap (see [this blog post][0]) and don’t bother calling `==` if `===` holds.<br></blockquote><div><br></div><div>This isn&#39;t true. Two buffers can have the same contents and therefore be equal, but be distinct from each other in terms of identity.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
All the best<br>
Johannes<br>
<br>
[0]: <a href="https://www.raywenderlich.com/112029/reference-value-types-in-swift-part-2" rel="noreferrer" target="_blank">https://www.raywenderlich.com/112029/reference-value-types-in-swift-part-2</a><br>
<br>_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
<br></blockquote></div><br></div></div>