orderedBestFirst

Orders solutions best-first at a single clock -- the latest any of them carries -- so that the ordering is a genuine total order.

The returned list holds the ORIGINAL solutions, not restamped copies: a solution's evaluation number takes part in its equality, so handing back copies would break callers that match a sorted element against one they already hold.

One caveat this cannot remove. Fixing the clock makes the ORDERING well defined given a well-behaved solutionComparer. A comparer that is itself intransitive stays intransitive: PenalizedObjectiveFunctionConfidenceIntervalComparator reports two solutions as equal when a confidence interval on their difference contains the indifference zone, and "statistically indistinguishable" is famously not transitive — a ties with b, b ties with c, and a is clearly better than c. Nothing in the library installs it, but it is public and can be set as solutionComparer, and then this ordering inherits the problem. Use such a comparer to decide between two candidates, not to rank a population.