public IWorld NextIteration(IWorld world) { var newWorld = new World(world.Printer); newWorld.ForEachCell((cx, cy) => { if (IsEligibleForSurvival(cx, cy, world)) { newWorld[cx, cy].Live(); } }); return newWorld; }