sig
  type t
  val make : int array -> Random.State.t
  val make_self_init : unit -> Random.State.t
  val copy : Random.State.t -> Random.State.t
  val bits : Random.State.t -> int
  val int : Random.State.t -> int -> int
  val full_int : Random.State.t -> int -> int
  val int32 : Random.State.t -> Stdlib.Int32.t -> Stdlib.Int32.t
  val nativeint : Random.State.t -> Stdlib.Nativeint.t -> Stdlib.Nativeint.t
  val int64 : Random.State.t -> Stdlib.Int64.t -> Stdlib.Int64.t
  val float : Random.State.t -> float -> float
  val bool : Random.State.t -> bool
  val bits32 : Random.State.t -> Stdlib.Int32.t
  val bits64 : Random.State.t -> Stdlib.Int64.t
  val nativebits : Random.State.t -> Stdlib.Nativeint.t
  val split : Random.State.t -> Random.State.t
  val to_binary_string : Random.State.t -> string
  val of_binary_string : string -> Random.State.t
end