sig
  type t = private {
    n : int;
    k : int;
    data : (int, Bigarray.int_elt, Bigarray.c_layout) Bigarray.Array1.t;
  }
  external _init_first : Combi.t -> unit = "ml_gsl_combination_init_first"
  external _init_last : Combi.t -> unit = "ml_gsl_combination_init_last"
  val make : int -> int -> Combi.t
  val to_array : Combi.t -> int array
  external prev : Combi.t -> unit = "ml_gsl_combination_prev"
  external next : Combi.t -> unit = "ml_gsl_combination_next"
  val valid : Combi.t -> bool
end