sig
  type qrng_type = NIEDERREITER_2 | SOBOL
  type t
  val make : Gsl_qrng.qrng_type -> int -> Gsl_qrng.t
  external init : Gsl_qrng.t -> unit = "ml_gsl_qrng_init"
  external get : Gsl_qrng.t -> float array -> unit = "ml_gsl_qrng_get"
  external sample : Gsl_qrng.t -> float array = "ml_gsl_qrng_sample"
  external name : Gsl_qrng.t -> string = "ml_gsl_qrng_name"
  external dimension : Gsl_qrng.t -> int = "ml_gsl_qrng_dimension"
  external memcpy : src:Gsl_qrng.t -> dst:Gsl_qrng.t -> unit
    = "ml_gsl_qrng_memcpy"
  external clone : Gsl_qrng.t -> Gsl_qrng.t = "ml_gsl_qrng_clone"
end