[swift-evolution] Equatable auto-write func == Proposal

Robert Widmann devteam.codafi at gmail.com
Mon Sep 12 11:03:12 CDT 2016


Please be careful when wording this proposal.  You want derived conformances, but don't obscure that message with the claim that every type admits a useful Equatable instance. It is most certainly not the case that every value type has a useful (read [mostly]: decidable) equality.  A few counterexamples, the type of lazy streams (https://github.com/typelift/Swiftz/blob/swift-develop/Swiftz/Stream.swift#L24) requires infinite space to evaluate a useful answer.  The type of functions [without a modulus of continuity] also don't admit a useful, or even canonical, equality (in Swift at least).  

~Robert Widmann

2016/09/10 8:24、Daniel Tartaglia via swift-evolution <swift-evolution at swift.org> のメッセージ:

> Now that Swift 3 is out the door, I’m going to float this proposal again…
> 
> Given that every value type should be equatable (rational here): https://www.andrewcbancroft.com/2015/07/01/every-swift-value-type-should-be-equatable/
> And that many, if not most, value types consist of properties that are value types.
> Then the language should make it easy to conform to the Equatable protocol.
> 
> In other words, if I declare my value type as Equatable, and it is exclusively composed of value types that are already equatable, then implementing the actual == function should be optional (or maybe even forbidden.)
> 
> Implementing == in such cases is tedious boilerplate that the compiler should be able to infer on its own.
> 
> Does anybody want to help me write up an official proposal?
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160912/06b20fdb/attachment.html>


More information about the swift-evolution mailing list