Keep in mind, though, that tuples and discriminated unions are so important as a high-level abstraction in functional languages,
because compiler can bend their actual representation at will,
and perform various optimizations (detupling, deforestation, etc).
We are a bit more limited with JVM ABI and Java interoperability. Basically, Kotlin class is JVM class.