interface IBase { fun foo(a: A, b: B) val C.id: Map? var List.x: D? } class Test1(i: IBase) : IBase by i class Test2(var j: IBase) : IBase by j