Why not `s0, p0 = p0, fn(0, s0)`?