class U
interface T {
fun foofoofoo(a: A, b: B): Int
}
abstract class T1 : T> {
override fun foofoofoo(a: U, b: B): Int {
throw UnsupportedOperationException()
}
}
abstract class T2 : T1() {
override fun foofoofoo(a: U, b: C): Int {
throw UnsupportedOperationException()
}
}