Custom Covariance/Contravariance

I'm working on a proposal for adding covariance and contravariance to
custom classes. For instance:

let a = MyBag<Dog>()
let b: MyBag<Animal> = a

I cannot find any threads which have discussed this yet, but maybe I'm
missing something. Has this been discussed?

If not, I'll continue with my proposal and have something more soon.

Thanks,
-Peter