interface Node { val parent: Node? } fun test(initial: Node) { var current = initial while (current != null) { consume(current) current = current.parent } } fun consume(node: Node) {}