You can use sealed
classes for discriminated unions.
Note also that union types are a slightly different thing: a union type A | B
is compatible with both A
and B
(with a run-time check). A discriminated union type is not, it requires an explicit constructor and explicit destructuring. They also would be mapped differently on JVM.