sig
module type STATE =
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
module type PURE =
sig
type t
val seed : string -> PRNG.PURE.t
val make : int array -> PRNG.PURE.t
val make_self_init : unit -> PRNG.PURE.t
val bool : PRNG.PURE.t -> bool * PRNG.PURE.t
val bit : PRNG.PURE.t -> bool * PRNG.PURE.t
val uniform : PRNG.PURE.t -> float * PRNG.PURE.t
val float : float -> PRNG.PURE.t -> float * PRNG.PURE.t
val byte : PRNG.PURE.t -> int * PRNG.PURE.t
val bits8 : PRNG.PURE.t -> int * PRNG.PURE.t
val int : int -> PRNG.PURE.t -> int * PRNG.PURE.t
val bits : PRNG.PURE.t -> int * PRNG.PURE.t
val bits30 : PRNG.PURE.t -> int * PRNG.PURE.t
val bits32 : PRNG.PURE.t -> int32 * PRNG.PURE.t
val int32 : int32 -> PRNG.PURE.t -> int32 * PRNG.PURE.t
val bits64 : PRNG.PURE.t -> int64 * PRNG.PURE.t
val int64 : int64 -> PRNG.PURE.t -> int64 * PRNG.PURE.t
val nativebits : PRNG.PURE.t -> nativeint * PRNG.PURE.t
val nativeint : nativeint -> PRNG.PURE.t -> nativeint * PRNG.PURE.t
val char : PRNG.PURE.t -> char * PRNG.PURE.t
val split : PRNG.PURE.t -> PRNG.PURE.t * PRNG.PURE.t
end
module Splitmix : sig module State : STATE module Pure : PURE end
module Chacha : sig module State : STATE module Pure : PURE end
module LXM : sig module State : STATE module Pure : PURE end
end