paulblessing
doSomething
B
data class C(val str: String) : A { override fun <T : A> doSomething(): T { TODO() } } val c: C = B(“foo").doSomething<C>()