enum class List(val size : Int) { Nil : List(0) { val a = 1 } Cons(val head : T, val tail : List) : List(tail.size + 1) } val foo = List.Nil val foo1 = foo.a