docs: @Override
      public Collection<O> breed(Arguments arguments, Population<O> population, Collection<O> parents) {
          List<O> bred = new ArrayList<>();
          List<O> breedables = new ArrayList<>(parents);
  
          for (int i = 0; i < arguments.breedingPoolSize(); i+=2) {
              O father = breedables.get(i);
              O mother = breedables.get(i+1);
              List<O> currentParents = new ArrayList<>();
              currentParents.add(father);
              currentParents.add(mother);
  
              List<O> children = crosser.cross(currentParents);
              bred.addAll(children);
          }
  
          return bred;
      }