Simplify fitness code.

Rather use an applicative functor to make the fitness decisions. This
greatly simplifies the logic.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>