Parámetro genérico Kotlin usando en function

Tengo la solución de esta pregunta: comodines generics en Kotlin para el parámetro , pero ahora tengo otra pregunta que todavía está relacionada con Kotlin genérico

Tengo una class abstracta que se usa para escuchar la callback de la API como a continuación. ApiRs es un object principal que todos los objects de respuesta API henetworkingan de él

abstract class ApiCallback<in T : ApiRs> { open fun onSucceed(apiRsModel: T) {} open fun onFailed(code: Int, message: String) { } } 

esta vez escribo una function para manejar api con éxito con Retrofit2, que verifique algo y vuelva a llamar a la interfaz de usuario, esta es mi function:

 fun <T : ApiRs> callbackWithSucceed(apiCallback: ApiCallback<T>?, context: Context, response: Response<out ApiRs>?) { // unexpected error if (response == null) { encounterUnexpectedError(apiCallback, context, null) return } // check http val httpSucceed = response.code() == CODE_HTTP_SUCCEED && response.isSuccessful && response.body() != null if (!httpSucceed) { // HTTP response with error callbackWithFailed( apiCallback, response.code(), response.message()) return } apiCallback?.onSucceed(response.body()!!) } } 

response es la class Retrofit2, que contiene mi model de respuesta API (cuerpo) y cada model de respuesta henetworkinga ApiRs, mi objective es pasar el model a la class abstracta usando de esta manera apiCallback?.onSucceed(response.body()!!) pero mostrará un error

Tipo desajuste, se requiere T? pero encontré ApiRs?

Lo siento, tengo un mal concepto de genérico. Creo que la function open fun onSucceed(apiRsModel: T) {} T debería henetworkingar ApiRs porque lo definí en class, por lo que no puedo entender por qué aparece el post de error.