```protected fun setState(reducer: S.() -> S) {...
# announcements
u
Copy code
protected fun setState(reducer: S.() -> S) {
    val oldState = stateRelay.value!!
    stateRelay.accept(oldState.reducer())
}

callsite:
setState {
	copy(foo = "bar")
}