package test public trait DeeplySubstitutedClassParameter { public trait Super { 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) } }