[swift-evolution] Make generics covariant and add generics to protocols

Thorsten Seitz tseitz42 at icloud.com
Wed Jan 13 00:10:03 CST 2016


> Am 13.01.2016 um 04:08 schrieb Simon Pilkington via swift-evolution <swift-evolution at swift.org>:
> 
> What uses do you see for covariance defined by the author of a type?

Just chiming in although I'm not David: you could have producer and consumer ointerfaces e.g. for collection types.

> Also I agree with you about Java; in particular for me the combination of covariance, Raw Types and Type Erasure create a very confusing system which sometimes seems to be of little benefit.

Yes, for most questions about the type system Java is a bad example...

Scala uses definition site variance annotations instead of use site annotations (like Java's wildcards). Ceylon actually does both but has a strong preference on definition site variance annotations, see http://ceylon-lang.org/documentation/1.2/tour/generics/

-Thorsten 


More information about the swift-evolution mailing list