enum Foo { A(String), B(i32), }
sealed interface Foo class A(val s: String): Foo class B(val b: Int): Foo