¿Por qué no puede procesar daga estos kotlin generics?

Estoy teniendo algunos problemas generics de Kotlin con Dagger que he reparado pero la solución no es buena.

Aquí están las classs de dagas:

@Module class P5Module { @Provides fun pool(): RecyclerView.RecycledViewPool = RecyclerView.RecycledViewPool() @Provides fun adapters(fusion: P5FusionAdapter, personas: P5ListAdapter, skills: P5SkillsAdapter, info: InfoAdapter) : List<Pageable> = listOf(fusion, personas, skills, info) } @ActivityScope @Subcomponent(modules = arrayOf(P5Module::class)) interface P5Component { fun adapter(): PageableAdapter } interface Pageable { fun manager(ctx: Context): LayoutManager fun attach() fun adapter(): Adapter<*> } class PageableAdapter @Inject constructor(val pageables: List<Pageable>, val pool: RecyclerView.RecycledViewPool) :PagerAdapter() 

Cuando construyo, obtengo este error de kapt en el componente de nivel superior:

 e: C:\Users\daykm\StudioProjects\P5Executioner\app\build\tmp\kapt3\stubs\appDebug\com\daykm\p5executioner\AppComponent.java:17: error: [com.daykm.p5executioner.main.P5Component.adapter()] java.util.List<? extends com.daykm.p5executioner.view.Pageable> cannot be provided without an @Provides-annotated method. e: e: public abstract interface AppComponent { e: ^ e: java.util.List<? extends com.daykm.p5executioner.view.Pageable> is injected at e: com.daykm.p5executioner.view.PageableAdapter.<init>(pageables, …) e: com.daykm.p5executioner.view.PageableAdapter is provided at e: com.daykm.p5executioner.main.P5Component.adapter() e: java.lang.IllegalStateException: failed to analyze: org.jetbrains.kotlin.kapt3.diagnostic.KaptError: Error while annotation processing 

Eché un vistazo a los talones generados:

 @javax.inject.Inject() public PageableAdapter(@org.jetbrains.annotations.NotNull() java.util.List<? extends com.daykm.p5executioner.view.Pageable> pageables, @org.jetbrains.annotations.NotNull() android.support.v7.widget.RecyclerView.RecycledViewPool pool) { super(); } @org.jetbrains.annotations.NotNull() @dagger.Provides() public final java.util.List<com.daykm.p5executioner.view.Pageable> adapters(@org.jetbrains.annotations.NotNull() 

Aparentemente no constring porque cuando modifico la class de daga así:

 @Module class P5Module { @Provides fun pool(): RecyclerView.RecycledViewPool = RecyclerView.RecycledViewPool() @Provides fun adapters(fusion: P5FusionAdapter, personas: P5ListAdapter, skills: P5SkillsAdapter, info: InfoAdapter) : List<*> = listOf(fusion, personas, skills, info) } @ActivityScope @Subcomponent(modules = arrayOf(P5Module::class)) interface P5Component { fun adapter(): PageableAdapter } interface Pageable { fun manager(ctx: Context): LayoutManager fun attach() fun adapter(): Adapter<*> } class PageableAdapter @Inject constructor(val pageables: List<*>, val pool: RecyclerView.RecycledViewPool) :PagerAdapter() 

El problema desaparece ¿Estoy tropezando con algún extraño problema de traducción con covarianza y contravarianza? Prefiero no forzar un elenco río abajo.