Ha! Cunningham's law.
I see that many OOP languages (of various purity) have interfaces that may be extended by other interfaces. Is that what you're talking about?
I also found that *variance is used in the context of Haskell, but it seems to be far from being widely used.
Haskell being my template of a language with a good-looking interplay of polymorphism and algebraic typing.