sig
  type state
  external init_default : unit -> Gmp_random.state
    = "camlidl_gmp_random_gmp_randinit_default"
  external init_lc_2exp : Mpz.t -> int -> int -> Gmp_random.state
    = "camlidl_gmp_random_gmp_randinit_lc_2exp"
  external init_lc_2exp_size : int -> Gmp_random.state
    = "camlidl_gmp_random_gmp_randinit_lc_2exp_size"
  external seed : Gmp_random.state -> Mpz.t -> unit
    = "camlidl_gmp_random_gmp_randseed"
  external seed_ui : Gmp_random.state -> int -> unit
    = "camlidl_gmp_random_gmp_randseed_ui"
  external urandomb : Mpz.t -> Gmp_random.state -> int -> unit
    = "camlidl_gmp_random_mpz_urandomb"
  external urandomm : Mpz.t -> Gmp_random.state -> Mpz.t -> unit
    = "camlidl_gmp_random_mpz_urandomm"
  external rrandomb : Mpz.t -> Gmp_random.state -> int -> unit
    = "camlidl_gmp_random_mpz_rrandomb"
end