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