sealed interface Result<out T> { data object Loading : Result<Nothing> data class Success<T>(val value: T) : Result<T> } fun main() { val result: Result<String> = Result.Loading println(result) }