[swift-evolution] [Review] SE-0095: Replace `protocol<P1, P2>` syntax with `Any<P1, P2>`
allevato at google.com
Wed Jun 22 14:51:12 CDT 2016
On Wed, Jun 22, 2016 at 11:04 AM Chris Lattner via swift-evolution <
swift-evolution at swift.org> wrote:
> Hello Swift community,
> The review of "SE-0095: Replace `protocol<P1,P2>` syntax with
> `Any<P1,P2>`" begins now and runs through June 27. The proposal is
> available here:
> Reviews are an important part of the Swift evolution process. All reviews
> should be sent to the swift-evolution mailing list at
> or, if you would like to keep your feedback private, directly to the
> review manager.
> What goes into a review?
> The goal of the review process is to improve the proposal under review
> through constructive criticism and contribute to the direction of Swift.
> When writing your review, here are some questions you might want to answer
> in your review:
> * What is your evaluation of the proposal?
+1. This syntax is clean and its meaning is very clear ("what is A & B? A
type that conforms to A and B").
* Is the problem being addressed significant enough to warrant a
> change to Swift?
Yes, and it's important to address now. As the type system becomes richer
in the future with the completion of generics, combined with Swift's
protocol-driven design philosophies, this feature will get much heavier use
going forward. Having a clean, simple, terse syntax to express multiple
protocol conformances (and eventually concrete type relationships) will
make those features much easier to use without being cluttered by keywords
and potential nested-angle-bracket hell.
The previously proposed Any<...> syntax suffers from ambiguity of meaning:
does it mean "a type that conforms to any of these..." or "any type that
conforms to all of these..."? Turns out it's the latter. The use of "&"
removes that ambiguity completely.
> * Does this proposal fit well with the feel and direction of Swift?
Yes. It will go a long way toward making protocol-driven designs and
generics great to use.
> * If you have used other languages or libraries with a similar
> feature, how do you feel that this proposal compares to those?
> * How much effort did you put into your review? A glance, a quick
> reading, or an in-depth study?
Read the proposal and participated a small amount in the earlier
> More information about the Swift evolution process is available at
> Thank you,
> -Chris Lattner
> Review Manager
> swift-evolution mailing list
> swift-evolution at swift.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the swift-evolution