HaloO Luke,

you wrote:
The words 'covariant' and 'contravariant' in this context seem like
voodoo math.  Please explain what you mean.

'Co' means together like in coproduction. And 'contra' is the opposite as in counterproductive. With instanciating parametric types the question arises how a subtype relation between instanciating types propagates to the template. E.g with Int <: Num, covariance would result in Array[Int] <: Array[Num]. Referential classes are actually quite difficult because upon write they are contravariant and covariant when read! So a third case of uncomparable types is needed as well, or it is the default if nothing else is specified.


That's not true.  I don't believe it would be an error to specify
all nine combinations.

Ohh, sorry. Of course implementing all is fine as well. But a bit tedious for larger collections of classes.


MfG -- TSa (Thomas SandlaÃ)




Reply via email to