class ArrayWrapper() { val contents = ArrayList() fun add(item: T) { contents.add(item) } operator fun plus(rhs: ArrayWrapper): ArrayWrapper { val result = ArrayWrapper() result.contents.addAll(contents) result.contents.addAll(rhs.contents) return result } operator fun get(index: Int): T { return contents.get(index)!! } } fun box(): String { var v1 = ArrayWrapper() val v2 = ArrayWrapper() v1.add("foo") val v3 = v1 v2.add("bar") v1 += v2 return if (v1.contents.size == 2 && v3.contents.size == 1) "OK" else "fail" }