trait A { fun foo(t: T, u: U): String } class Derived(a: A) : A by a fun box(): String { val o = object : A { override fun foo(t: Long, u: Int) = if (t == u.toLong()) "OK" else "Fail $t $u" } return Derived(o).foo(42, 42) }