trait In trait Out trait Inv trait TypeBounds1I> trait TypeBounds2 trait TypeBounds3 trait TypeBounds4> trait TypeBounds5)!>O>> trait WhereTypeBounds1 where X : I trait WhereTypeBounds2 where X : O trait WhereTypeBounds3 where X : P trait WhereTypeBounds4 where X : In trait WhereTypeBounds5 where X : In<)!>O> class SubClass1 : Out<)!>I> class SubClass2 : Out class SubClass3 : Out

class SubClass4 : In class SubClass5 : In<)!>O> class SubClass6 : Inv<)!>O> class SubClass7 : Inv<)!>I>