La function Kotlin requiere nada, pero se define como un tipo diferente

Definí una class como tal

abstract class MvpViewHolder<P>(itemView: View) : RecyclerView.ViewHolder(itemView) where P : BasePresenter<out Any?, out Any?> { protected var presenter: P? = null fun bindPresenter(presenter: P): Unit { this.presenter = presenter presenter.bindView(itemView) } } 

donde presenter.bindView(itemView) me da un error que indica que Type mismatch, requinetworking: Nothing, found: View! . bindView el bindView dentro de la class de presenter como tal

 abstract class BasePresenter<M, V> { var view: WeakReference<V>? = null var model: M? = null fun bindView(view: V) { this.view = WeakReference(view) } } 

Está tomando un valor de view: V

He intentado definir mi extensión de BasePresenter<out Any?, out Any?> la syntax de estrella BasePresenter<*,*> pero obtengo el mismo error. También intenté usar simplemente BasePresenter<Any?, Any?> Que corrige el problema directo, pero todo lo que extiende P: BasePresenter<Any?, Any?> Da un error que dice que esperaba P, pero obtuvo BasePresenter<Any?, Any?>

Aquí hay un ejemplo donde eso sucede dentro de mi código

 abstract class MvpRecyclerListAdapter<M, P : BasePresenter<Any?, Any?>, VH : MvpViewHolder<P>> : MvpRecyclerAdapter<M, P, VH>() {...} 

En esta línea, obtendría el error mencionado anteriormente en la parte que amplía MvpRecyclerAdapter<M, P, VH>

Parece que no puedo evitar esto. ¿Cómo puedo arreglarlo?