interface In interface Out interface Inv interface TypeBounds1I> interface TypeBounds2 interface TypeBounds3 interface TypeBounds4> interface TypeBounds5)!>O>> interface WhereTypeBounds1 where X : I interface WhereTypeBounds2 where X : O interface WhereTypeBounds3 where X : P interface WhereTypeBounds4 where X : In interface 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>