merge

abstract fun <U, R> merge(state: State<U>, block: (first: T, second: U) -> R): State<R>