## minimized code ```Scala sealed trait Off case class Of[sup, sub <: sup] extends Off type Sup[O <: Off] = O match { case Of[sup, sub] => sup } // error here! type Sub[O <: Off] = O match { case Of[sup, sub] => sub } // error here! type Copy[O <: Off] = Of[Sup[O], Sub[O]] ``` emits type errors about variables `sup, sub` do not conform the bounds ## expectation no errors