namespace foobar namespace a { import java.* val a : util.List? = null val a1 : List? = null } namespace a { import java.util.* val b : List? = a val b1 : util.List? = a } val x1 = a.a val y1 = a.b ///////////////////////////////////////////////////////////////////////// fun done(result : O) : Iteratee class Iteratee { abstract fun process(item : I) : Iteratee abstract val isDone : Boolean abstract val result : O abstract fun done() : O } class Sum() : Iteratee { override fun process(item : Int) : Iteratee { return foobar.done(item); } override val isDone : Boolean override val result : Int override fun done() : Int } class Collection : Iterable { fun iterate(iteratee : Iteratee) : O { for (x in this) { val it = iteratee.process(x) if (it.isDone) return it.result iteratee = it } return iteratee.done() } }