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