// !LANGUAGE: +InlineClasses // WITH_RUNTIME inline class IC(val value: Any) fun foo(a: Result, ic: IC): Pair = bar(a, ic, object : IFace, IC, Pair> { override fun call(a: Result, ic: IC): Pair = a.getOrThrow() to ic.value }) interface IFace { fun call(t1: T1, t2: T2): R } fun bar(t1: T1, t2: T2, f: IFace): R { return f.call(t1, t2) } fun Pair.join(): String = "$first$second" fun box(): String = foo(Result.success("O"), IC("K")).join()