In<out T>
  compiler error

Out<out T>
  in Int. lower: Out<Int>; upper: Out<Any?>; substitution: Out<*>
  out Int. lower: Out<Nothing>; upper: Out<Int>; substitution: Out<Int>

Inv<out T>
  in Int. lower: Inv<out Int>; upper: Inv<out Any?>; substitution: Inv<out Int>
  out Int. lower: Inv<Nothing>; upper: Inv<out Int>; substitution: Inv<out Int>

Inv<in out T>
  compiler error

Inv<out out T>
  compiler error

In<In<out T>>
  compiler error

In<Out<out T>>
  in Int. lower: In<Out<Any?>>; upper: In<Out<Int>>; substitution: In<Out<*>>
  out Int. lower: In<Out<Int>>; upper: In<Out<Nothing>>; substitution: In<Out<Int>>

In<Inv<out T>>
  in Int. lower: In<Inv<out Any?>>; upper: In<Inv<out Int>>; substitution: In<Inv<out Int>>
  out Int. lower: In<Inv<out Int>>; upper: In<Inv<Nothing>>; substitution: In<Inv<out Int>>

In<Inv<in out T>>
  compiler error

In<Inv<out out T>>
  compiler error

Out<In<out T>>
  compiler error

Out<Out<out T>>
  in Int. lower: Out<Out<Int>>; upper: Out<Out<Any?>>; substitution: Out<Out<*>>
  out Int. lower: Out<Out<Nothing>>; upper: Out<Out<Int>>; substitution: Out<Out<Int>>

Out<Inv<out T>>
  in Int. lower: Out<Inv<out Int>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<out Int>>
  out Int. lower: Out<Inv<Nothing>>; upper: Out<Inv<out Int>>; substitution: Out<Inv<out Int>>

Out<Inv<in out T>>
  compiler error

Out<Inv<out out T>>
  compiler error

Inv<In<out T>>
  compiler error

Inv<Out<out T>>
  in Int. lower: Nothing; upper: Inv<out Out<Any?>>; substitution: Inv<Out<*>>
  out Int. lower: Nothing; upper: Inv<out Out<Int>>; substitution: Inv<Out<Int>>

Inv<Inv<out T>>
  in Int. lower: Nothing; upper: Inv<out Inv<out Any?>>; substitution: Inv<Inv<out Int>>
  out Int. lower: Nothing; upper: Inv<out Inv<out Int>>; substitution: Inv<Inv<out Int>>

Inv<Inv<in out T>>
  compiler error

Inv<Inv<out out T>>
  compiler error

Inv<in In<out T>>
  compiler error

Inv<in Out<out T>>
  in Int. lower: Inv<in Out<Any?>>; upper: Inv<in Out<Int>>; substitution: Inv<in Out<*>>
  out Int. lower: Inv<in Out<Int>>; upper: Inv<in Out<Nothing>>; substitution: Inv<in Out<Int>>

Inv<in Inv<out T>>
  in Int. lower: Inv<in Inv<out Any?>>; upper: Inv<in Inv<out Int>>; substitution: Inv<in Inv<out Int>>
  out Int. lower: Inv<in Inv<out Int>>; upper: Inv<in Inv<Nothing>>; substitution: Inv<in Inv<out Int>>

Inv<in Inv<in out T>>
  compiler error

Inv<in Inv<out out T>>
  compiler error

Inv<out In<out T>>
  compiler error

Inv<out Out<out T>>
  in Int. lower: Inv<out Out<Int>>; upper: Inv<out Out<Any?>>; substitution: Inv<out Out<*>>
  out Int. lower: Inv<out Out<Nothing>>; upper: Inv<out Out<Int>>; substitution: Inv<out Out<Int>>

Inv<out Inv<out T>>
  in Int. lower: Inv<out Inv<out Int>>; upper: Inv<out Inv<out Any?>>; substitution: Inv<out Inv<out Int>>
  out Int. lower: Inv<out Inv<Nothing>>; upper: Inv<out Inv<out Int>>; substitution: Inv<out Inv<out Int>>

Inv<out Inv<in out T>>
  compiler error

Inv<out Inv<out out T>>
  compiler error

In<Inv<Out<out T>>>
  in Int. lower: In<Inv<out Out<Any?>>>; upper: In<Nothing>; substitution: In<Inv<Out<*>>>
  out Int. lower: In<Inv<out Out<Int>>>; upper: In<Nothing>; substitution: In<Inv<Out<Int>>>

Out<Out<Out<out T>>>
  in Int. lower: Out<Out<Out<Int>>>; upper: Out<Out<Out<Any?>>>; substitution: Out<Out<Out<*>>>
  out Int. lower: Out<Out<Out<Nothing>>>; upper: Out<Out<Out<Int>>>; substitution: Out<Out<Out<Int>>>

Inv<Inv<in In<out T>>>
  compiler error

Inv<out Inv<Out<out T>>>
  in Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Any?>>>; substitution: Inv<out Inv<Out<*>>>
  out Int. lower: Inv<Nothing>; upper: Inv<out Inv<out Out<Int>>>; substitution: Inv<out Inv<Out<Int>>>

Inv<in Inv<Inv<out T>>>
  in Int. lower: Inv<in Inv<out Inv<out Any?>>>; upper: Inv<out Any?>; substitution: Inv<in Inv<Inv<out Int>>>
  out Int. lower: Inv<in Inv<out Inv<out Int>>>; upper: Inv<out Any?>; substitution: Inv<in Inv<Inv<out Int>>>

Out<Inv<In<out T>>>
  compiler error

Inv<out Out<Out<out T>>>
  in Int. lower: Inv<out Out<Out<Int>>>; upper: Inv<out Out<Out<Any?>>>; substitution: Inv<out Out<Out<*>>>
  out Int. lower: Inv<out Out<Out<Nothing>>>; upper: Inv<out Out<Out<Int>>>; substitution: Inv<out Out<Out<Int>>>

Out<In<Inv<out T>>>
  in Int. lower: Out<In<Inv<out Any?>>>; upper: Out<In<Inv<out Int>>>; substitution: Out<In<Inv<out Int>>>
  out Int. lower: Out<In<Inv<out Int>>>; upper: Out<In<Inv<Nothing>>>; substitution: Out<In<Inv<out Int>>>

Inv<out In<Out<out T>>>
  in Int. lower: Inv<out In<Out<Any?>>>; upper: Inv<out In<Out<Int>>>; substitution: Inv<out In<Out<*>>>
  out Int. lower: Inv<out In<Out<Int>>>; upper: Inv<out In<Out<Nothing>>>; substitution: Inv<out In<Out<Int>>>

In<Out<Inv<out T>>>
  in Int. lower: In<Out<Inv<out Any?>>>; upper: In<Out<Inv<out Int>>>; substitution: In<Out<Inv<out Int>>>
  out Int. lower: In<Out<Inv<out Int>>>; upper: In<Out<Inv<Nothing>>>; substitution: In<Out<Inv<out Int>>>

Inv<out Inv<Inv<out Inv<in out T>>>>
  compiler error

Inv<in Out<In<Inv<in out T>>>>
  compiler error

Inv<in In<Inv<out Inv<in out T>>>>
  compiler error

Inv<In<In<Inv<in out T>>>>
  compiler error

Inv<out Inv<out Inv<out Inv<out T>>>>
  in Int. lower: Inv<out Inv<out Inv<out Inv<out Int>>>>; upper: Inv<out Inv<out Inv<out Inv<out Any?>>>>; substitution: Inv<out Inv<out Inv<out Inv<out Int>>>>
  out Int. lower: Inv<out Inv<out Inv<out Inv<Nothing>>>>; upper: Inv<out Inv<out Inv<out Inv<out Int>>>>; substitution: Inv<out Inv<out Inv<out Inv<out Int>>>>

Inv<out Out<Inv<out Inv<in out T>>>>
  compiler error

Out<Inv<out Inv<out In<out T>>>>
  compiler error

In<Inv<in In<Inv<in out T>>>>
  compiler error

Out<Inv<in In<Inv<out T>>>>
  in Int. lower: Out<Inv<in In<Inv<out Int>>>>; upper: Out<Inv<in In<Inv<out Any?>>>>; substitution: Out<Inv<in In<Inv<out Int>>>>
  out Int. lower: Out<Inv<in In<Inv<Nothing>>>>; upper: Out<Inv<in In<Inv<out Int>>>>; substitution: Out<Inv<in In<Inv<out Int>>>>

Out<Inv<in Inv<in Inv<out T>>>>
  in Int. lower: Out<Inv<in Inv<in Inv<out Int>>>>; upper: Out<Inv<in Inv<in Inv<out Any?>>>>; substitution: Out<Inv<in Inv<in Inv<out Int>>>>
  out Int. lower: Out<Inv<in Inv<in Inv<Nothing>>>>; upper: Out<Inv<in Inv<in Inv<out Int>>>>; substitution: Out<Inv<in Inv<in Inv<out Int>>>>

In<In<Inv<In<In<out T>>>>>
  compiler error

Inv<Inv<Inv<Out<Inv<in out T>>>>>
  compiler error

Out<Inv<Out<Out<Inv<out out T>>>>>
  compiler error

Inv<In<Inv<in In<Inv<out out T>>>>>
  compiler error

Inv<in Inv<out In<Out<Inv<out out T>>>>>
  compiler error

Inv<out Out<Inv<in Inv<in Inv<in out T>>>>>
  compiler error

Out<Out<Inv<Out<Inv<out out T>>>>>
  compiler error

In<Inv<In<In<Inv<out out T>>>>>
  compiler error

Inv<out Inv<in Inv<Inv<out Inv<out out T>>>>>
  compiler error

In<Inv<in In<In<Inv<out out T>>>>>
  compiler error

In<Inv<Out<In<Inv<Inv<out T>>>>>>
  in Int. lower: In<Inv<out Out<In<Nothing>>>>; upper: In<Nothing>; substitution: In<Inv<Out<In<Inv<Inv<out Int>>>>>>
  out Int. lower: In<Inv<out Out<In<Nothing>>>>; upper: In<Nothing>; substitution: In<Inv<Out<In<Inv<Inv<out Int>>>>>>

Out<Inv<Inv<out Inv<Inv<in In<out T>>>>>>
  compiler error

Inv<Out<In<In<Inv<in In<out T>>>>>>
  compiler error

Inv<In<Inv<Inv<in Inv<out Inv<out out T>>>>>>
  compiler error

In<Inv<out Inv<in Inv<Inv<in Inv<out out T>>>>>>
  compiler error

In<Inv<Inv<out Inv<out In<In<out T>>>>>>
  compiler error

Out<In<Inv<Out<Inv<Out<out T>>>>>>
  in Int. lower: Out<In<Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<Out<Inv<Out<*>>>>>>
  out Int. lower: Out<In<Inv<out Out<Inv<out Out<Int>>>>>>; upper: Out<In<Nothing>>; substitution: Out<In<Inv<Out<Inv<Out<Int>>>>>>

Inv<out Inv<Inv<in Out<Inv<out Inv<in out T>>>>>>
  compiler error

Out<Inv<in Inv<Out<Inv<Out<out T>>>>>>
  in Int. lower: Out<Inv<in Inv<out Out<Inv<out Out<Any?>>>>>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<in Inv<Out<Inv<Out<*>>>>>>
  out Int. lower: Out<Inv<in Inv<out Out<Inv<out Out<Int>>>>>>; upper: Out<Inv<out Any?>>; substitution: Out<Inv<in Inv<Out<Inv<Out<Int>>>>>>

Inv<Inv<in Inv<in In<In<Out<out T>>>>>>
  in Int. lower: Nothing; upper: Inv<out Inv<in Inv<in In<In<Out<Any?>>>>>>; substitution: Inv<Inv<in Inv<in In<In<Out<*>>>>>>
  out Int. lower: Nothing; upper: Inv<out Inv<in Inv<in In<In<Out<Int>>>>>>; substitution: Inv<Inv<in Inv<in In<In<Out<Int>>>>>>
