package test public trait DeeplySubstitutedClassParameter: Object { public trait Super: Object { public fun foo(p0: T) public fun dummy() // to avoid loading as SAM interface } public trait Middle: Super { override fun foo(p0: E) } public trait Sub: Middle { override fun foo(p0: String) } }