class foo { extension foo for X { extension foo for X { } class Bar {} fun foo() val x var f type foo = bar decomposer (a, b, c) this() : this(a, b, c), Foo(bar) } class Bar { extension foo for X { class object { } private class object { } private class object Fooo { } private class object Fooo, Bar by foo { } private class object Fooo, Bar by foo, Goo() } class Bar {} fun foo() val x var f type foo = bar decomposer (a, b, c) this() : this(a, b, c), Foo(bar) } fun foo() val x var f type foo = bar decomposer (a, b, c) this() : this(a, b, c), Foo(bar) this() : this(a, b, c), Foo(bar) { } class object { } private class object { } private class object Fooo { } private class object Fooo, Bar by foo { } private class object Fooo, Bar by foo, Goo() }