> 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
Architechies

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to