class Outer { var Inner.prop: V get() = this.value set(value) { this.value = value } } class Inner( val key: T, var value: V ) fun box(): String { Outer().run { val i = Inner(true, false) i.prop = true } return "OK" }