sig
  type confusion_matrix = private { tp : int; tn : int; fp : int; fn : int; }
  val confusion_matrix :
    scores:float array ->
    labels:bool array -> threshold:float -> Biocaml_bin_pred.confusion_matrix
  val sensitivity : Biocaml_bin_pred.confusion_matrix -> float
  val recall : Biocaml_bin_pred.confusion_matrix -> float
  val false_positive_rate : Biocaml_bin_pred.confusion_matrix -> float
  val accuracy : Biocaml_bin_pred.confusion_matrix -> float
  val specificity : Biocaml_bin_pred.confusion_matrix -> float
  val positive_predictive_value : Biocaml_bin_pred.confusion_matrix -> float
  val precision : Biocaml_bin_pred.confusion_matrix -> float
  val negative_predictive_value : Biocaml_bin_pred.confusion_matrix -> float
  val false_discovery_rate : Biocaml_bin_pred.confusion_matrix -> float
  val f1_score : Biocaml_bin_pred.confusion_matrix -> float
  val performance_curve :
    scores:float array ->
    labels:bool array -> (float * Biocaml_bin_pred.confusion_matrix) array
  val roc_curve :
    scores:float array -> labels:bool array -> (float * float) array * float
  val rp_curve :
    scores:float array -> labels:bool array -> (float * float) array
end