- Use implicit conformance to protocols (duck typing)
- Treat protocols as types, eliminating the any<proto1, proto2, ...>
syntax in favor of...
- Introduce a syntax for anonymous protocols
- Switch [] syntax over to be more C++-like
- Switch protocol inheritance -> protocol refinement, and use : to
separate a protocol from those protocols it refines
- Clarify our intent w.r.t. type argument deduction
- Note that we don't intend to implement run-time overload
resolution out of the box
Swift SVN r497