Observable.combineLa última inferencia de tipos en kotlin

Estoy usando RxJava2, Kotlin-1.1 junto con RxBindings en mi proyecto.

Tengo una pantalla de inicio de sesión simple con el botón 'iniciar sesión' deshabilitado de forma predeterminada, quiero habilitar el botón solo cuando los campos de edición de texto de nombre de usuario y contraseña no están vacíos.

LoginActivity.java

Observable<Boolean> isFormEnabled =
    Observable.combineLatest(mUserNameObservable, mPasswordObservable,
        (userName, password) -> userName.length() > 0 && password.length() > 0)
        .distinctUntilChanged();

No puedo traducir el código anterior de Java a Kotlin:

LoginActivity.kt

class LoginActivity : AppCompatActivity() {

  val disposable = CompositeDisposable()

  private var userNameObservable: Observable<CharSequence>? = null
  private var passwordObservable: Observable<CharSequence>? = null

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_login)
    initialize()
  }

  fun initialize() {
    userNameObservable = RxTextView.textChanges(username).skip(1)
        .debounce(500, TimeUnit.MILLISECONDS)
    passwordObservable = RxTextView.textChanges(password).skip(1)
        .debounce(500, TimeUnit.MILLISECONDS) 
  }

  private fun setSignInButtonEnableListener() {
    val isSignInEnabled: Observable<Boolean> = Observable.combineLatest(userNameObservable,
        passwordObservable,
        { u: CharSequence, p: CharSequence -> u.isNotEmpty() && p.isNotEmpty() })
  }
}

Supuse que es algo relacionado con la inferencia de tipos del tercer argumento encombinelatest, pero no obtengo el problema correctamente al leer el mensaje de error:

Respuestas a la pregunta(2)

Su respuesta a la pregunta