sig
  type t = {
    n_samples : int;
    target_variance : float;
    sse : float;
    mse : float;
    rmse : float;
    smse : float;
    msll : float;
    mad : float;
    maxad : float;
  }
  val calc_n_samples : Gpr_interfaces.Sigs.Eval.Trained.t -> int
  val calc_target_variance : Gpr_interfaces.Sigs.Eval.Trained.t -> float
  val calc_sse : Gpr_interfaces.Sigs.Eval.Trained.t -> float
  val calc_mse : Gpr_interfaces.Sigs.Eval.Trained.t -> float
  val calc_rmse : Gpr_interfaces.Sigs.Eval.Trained.t -> float
  val calc_smse : Gpr_interfaces.Sigs.Eval.Trained.t -> float
  val calc_msll : Gpr_interfaces.Sigs.Eval.Trained.t -> float
  val calc_mad : Gpr_interfaces.Sigs.Eval.Trained.t -> float
  val calc_maxad : Gpr_interfaces.Sigs.Eval.Trained.t -> float
  val calc :
    Gpr_interfaces.Sigs.Eval.Trained.t -> Gpr_interfaces.Sigs.Eval.Stats.t
end