is there a reason why something like this is not possible in Kotlin?
Copy code
sealed class RequestResult(val status: Status)
data class OkResult(status: Status) : RequestResult(status)
data class ErrorResult(val status: Status) : RequestResult(status)