Transparent Enums

Exhaustive checking is important
Kotlin enums are transparently converted to proper Swift enums. This allows for exhaustive operations on the Swift side.

Sealed Hierarchies

Sealed classes are unchanged, but an associated enum is generated, as well as a wrapper function to use in switch statements.