C::class : KClass<C> expr: T => expr::class : KClass<out T> NB: this means Obj::class : KClass<out Obj> for object Obj.
In the expression "Runnable::run" we were resolving the left-hand side to the SAM constructor of Runnable. Now we detect this situation, ignore the result of such resolution, and continue resolving the LHS as a type