`bar` is 2 because `setFoo` does not update the value of `foo` until the next render
So there will be 3 cycles?
1: foo = 1, next(foo = 10)
bar = undef, next(bar = 2)
2: foo = 10
bar = 2, next(bar = 20)
3: foo = 10
bar = 20
Does the above sound right?