///|
pub(all) struct ClassificationCandidate {
  config : ClassificationConfig
  mean_accuracy : Double
} derive(Eq, Debug)

///|
pub(all) struct ClassificationSelection {
  best_config : ClassificationConfig
  best_accuracy : Double
  candidates : Array[ClassificationCandidate]
} derive(Eq, Debug)

///|
pub(all) struct RegressionCandidate {
  config : RegressionConfig
  mean_mse : Double
  mean_mae : Double
} derive(Eq, Debug)

///|
pub(all) struct RegressionSelection {
  best_config : RegressionConfig
  best_mse : Double
  best_mae : Double
  candidates : Array[RegressionCandidate]
} derive(Eq, Debug)