[swift-evolution] [Review] SE-0095: Replace `protocol<P1, P2>` syntax with `Any<P1, P2>`

Tony Allevato 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:
> https://github.com/apple/swift-evolution/blob/master/proposals/0095-any-as-existential.md
> Reviews are an important part of the Swift evolution process. All reviews
> should be sent to the swift-evolution mailing list at
>         https://lists.swift.org/mailman/listinfo/swift-evolution
> 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
>         https://github.com/apple/swift-evolution/blob/master/process.md
> Thank you,
> -Chris Lattner
> Review Manager
> _______________________________________________
> 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/20160622/e45fdc27/attachment.html>

More information about the swift-evolution mailing list