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

Brent Royal-Gordon brent at architechies.com
Wed May 25 14:22:36 CDT 2016

> But if we are going to remove the ability to use typealiases bound to `Any` in constraints we need to introduce an alternative mechanism for factoring out constraints (hopefully a superior mechanism that can abstract over constraints that relate generic parameters to each other).

I could certainly imagine having, for instance, a `constraintalias` keyword:

	constraintalias HashableAndComparable = Hashable, Comparable
	constraintalias CollectionOfConforming<ElementConstraint> = Collection where .Element: ElementConstraint

	let value: Any<HashableAndComparable> = 123
	func sum<C: CollectionOfConforming<Integer>>(numbers: C) -> C.Iterator.Element {
		return numbers.reduce(0, combine: +)

Brent Royal-Gordon

More information about the swift-evolution mailing list