usually I find that I want union types when using callbacks or observables where the responses can be of totally disparate types. manually boxing them in sealed classes works, but could be simplified with a
(String | Int | Boolean) -> Unit
type situation