This code fails to compile, with an error on the KClass type:
interface Foo<T> {
val tClass: KClass<T>
}
Type argument is not within its bounds. Expected: Any, Found: T
This is saying that KClass needs an Any type parameter, but T is not an Any.
So what is the difference between these?
<T><T: Any><T: Any?>