listen

fun <S : State, T> listen(selector: (S) -> T, action: (T) -> Unit): ReceiveChannel<S>
fun <S : State> listen(action: (S) -> Unit): ReceiveChannel<S>