class Stack : IPushPop { private val data = ArrayList(); override fun push(item : T) { data.add(item) // Problem: I would like to write push(...) = data.add(...), but the types do not match } override fun pop() = data.removeLast() override val isEmpty get() = data.isEmpty }