data object LoginError : ApiResponse.Failure.Error( payload = "Need login", ) val message = ContentNeedLogin.message() message is "LoginError", not payload message "Need login" Overload resolution ambiguity between candidates: fun <T> ApiResponse.Failure<T>.message(): String fun ApiResponse.Failure.Error.message(): String