docs: def next_population(self, population, fitnesses):
          """Make a new population after each optimization iteration.
  
          Args:
              population: The population current population of solutions.
              fitnesses: The fitness associated with each solution in the population
          Returns:
              list; a list of solutions.
          """
          return common.make_population(self._population_size,
                                        self._generate_solution)