The AlterResult struct is used to represent the result of an
alteration operation. It contains the number of operations
performed and a vector of metrics that were collected
during the alteration process.
The Alterer enum is used to represent the different
types of alterations that can be performed on a
population - It can be either a mutation or a crossover operation.