The following code demonstrates it clearly:
trait Poly1Group[-IUB, +OUB] { trait Case[-I <: IUB] { type Out &