[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