sig
  type t
  val make : int array -> Extlib.ExtRandom.Random.State.t
  val make_self_init : unit -> Extlib.ExtRandom.Random.State.t
  val copy :
    Extlib.ExtRandom.Random.State.t -> Extlib.ExtRandom.Random.State.t
  val bits : Extlib.ExtRandom.Random.State.t -> int
  val int : Extlib.ExtRandom.Random.State.t -> int -> int
  val int32 : Extlib.ExtRandom.Random.State.t -> Int32.t -> Int32.t
  val nativeint :
    Extlib.ExtRandom.Random.State.t -> Nativeint.t -> Nativeint.t
  val int64 : Extlib.ExtRandom.Random.State.t -> Int64.t -> Int64.t
  val float : Extlib.ExtRandom.Random.State.t -> float -> float
  val bool : Extlib.ExtRandom.Random.State.t -> bool
  val char : Extlib.ExtRandom.Random.State.t -> char
  val enum_bits :
    Extlib.ExtRandom.Random.State.t -> unit -> int Extlib.Enum.t
  val enum_int : Extlib.ExtRandom.Random.State.t -> int -> int Extlib.Enum.t
  val enum_bool :
    Extlib.ExtRandom.Random.State.t -> unit -> bool Extlib.Enum.t
  val enum_float :
    Extlib.ExtRandom.Random.State.t -> float -> float Extlib.Enum.t
  val enum_int32 :
    Extlib.ExtRandom.Random.State.t -> Int32.t -> Int32.t Extlib.Enum.t
  val enum_int64 :
    Extlib.ExtRandom.Random.State.t -> Int64.t -> Int64.t Extlib.Enum.t
  val enum_nativeint :
    Extlib.ExtRandom.Random.State.t ->
    Nativeint.t -> Nativeint.t Extlib.Enum.t
  val enum_char :
    Extlib.ExtRandom.Random.State.t -> unit -> char Extlib.Enum.t
  val t_of_sexp : Sexplib.Sexp.t -> Extlib.ExtRandom.Random.State.t
  val sexp_of_t : Extlib.ExtRandom.Random.State.t -> Sexplib.Sexp.t
end