declaration-site variance

Declaration-site variance is the variance that is specified at the point where the generic is defined – for example, in the definition of the class, interface, function, or extension property. To use declaration-site variance, you just have to modify a type parameter with either the in or out variance annotation.