interface A { suspend fun foo(): T } interface B : A abstract class C : B { override suspend fun foo(): V = TODO() }