sig
  type t
  val seed : string -> PRNG.STATE.t
  val make : int array -> PRNG.STATE.t
  val make_self_init : unit -> PRNG.STATE.t
  val bool : PRNG.STATE.t -> bool
  val bit : PRNG.STATE.t -> bool
  val uniform : PRNG.STATE.t -> float
  val float : PRNG.STATE.t -> float -> float
  val byte : PRNG.STATE.t -> int
  val bits8 : PRNG.STATE.t -> int
  val bits : PRNG.STATE.t -> int
  val bits30 : PRNG.STATE.t -> int
  val int : PRNG.STATE.t -> int -> int
  val bits32 : PRNG.STATE.t -> int32
  val int32 : PRNG.STATE.t -> int32 -> int32
  val bits64 : PRNG.STATE.t -> int64
  val int64 : PRNG.STATE.t -> int64 -> int64
  val nativebits : PRNG.STATE.t -> nativeint
  val nativeint : PRNG.STATE.t -> nativeint -> nativeint
  val char : PRNG.STATE.t -> char
  val bytes : PRNG.STATE.t -> bytes -> int -> int -> unit
  val split : PRNG.STATE.t -> PRNG.STATE.t
  val copy : PRNG.STATE.t -> PRNG.STATE.t
  val reseed : PRNG.STATE.t -> string -> unit
  val remake : PRNG.STATE.t -> int array -> unit
end