Why can a when over a sealed class often omit the else branch while still being exhaustive?
sealed class Result
object Loading : Result()
data class Ok(val data: String) : Result()
data class Err(val msg: String) : Result()
fun render(r: Result) = when (r) {
Loading -> "..."
is Ok -> r.data
is Err -> r.msg
}