// why doesn't this work? data class NumberNode(val myData: Int, val next: NumberNode) // represents that a linked list can either be empty, // or a node with numeric data and a reference to // the next such list sealed class LinkedListNumbers { object Empty: LinkedListNumbers() data class Node( val myData: Int, val next: LinkedListNumbers ): LinkedListNumbers() } val emptyNumberList = LinkedListNumbers.Empty val list1 = LinkedListNumbers.Node(1, emptyNumberList) val list21 = LinkedListNumbers.Node(2, list1) val list321 = LinkedListNumbers.Node(3, list21) println(list321)