Cómo comprimir algunos observables en lenguaje Kotlin con RxAndroid

¡Todo el mundo! Tengo algunos problemas. Soy un principiante en RxJava / RxKotlin / RxAndroid, y no entiendo algunas características. Por ejemplo:

import rus.pifpaf.client.data.catalog.models.Category import rus.pifpaf.client.data.main.MainRepository import rus.pifpaf.client.data.main.models.FrontDataModel import rus.pifpaf.client.data.product.models.Product import rx.Observable import rx.Single import rx.lang.kotlin.observable import java.util.* class MainInteractor { private var repository: MainRepository = MainRepository() fun getFrontData() { val cats = getCategories() val day = getDayProduct() val top = getTopProducts() return Observable.zip(cats, day, top, MainInteractor::convert) } private fun getTopProducts(): Observable<List<Product>> { return repository.getTop() .toObservable() .onErrorReturn{throwable -> ArrayList() } } private fun getDayProduct(): Observable<Product> { return repository.getSingleProduct() .toObservable() .onErrorReturn{throwable -> Product()} } private fun getCategories(): Observable<List<Category>> { return repository.getCategories() .toObservable() .onErrorReturn{throwable -> ArrayList() } } private fun convert(cats: List<Category>, product: Product, top: List<Product>): FrontDataModel { } } 

Entonces estoy usando MainInteractor :: convert android studio dime el próximo

enter image description here

Intenté muchas variantes e intenté entender qué es lo que quería, pero no tuve éxito. Ayúdame por favor … Saludos cordiales.