# Module BatRandom.Incubator.Private_state_enums.State

    module State: sig .. end

    type t = Random.State.t

same as BatRandom.State

The type of PRNG states.

    val make : int array -> t

Create a new state and initialize it with the given seed.

    val make_self_init : unit -> t

Create a new state and initialize it with a system-dependent low-entropy seed.

    val copy : t ->
           t

Return a copy of the given state.

    val bits : t -> int

    val int : t -> int -> int

    val int32 : t -> Int32.t -> Int32.t

    val nativeint : t -> Nativeint.t -> Nativeint.t

    val int64 : t -> Int64.t -> Int64.t

    val float : t -> float -> float

    val bool : t -> bool

    val char : t -> char

    val enum_bits : t -> unit -> int BatEnum.t

A copy of the input state is made to start these generators; the input state is not modified. This means that two enums constructed from the same state will produce the same value sequence.

    val enum_int : t -> int -> int BatEnum.t

    val enum_bool : t -> unit -> bool BatEnum.t

    val enum_float : t -> float -> float BatEnum.t

    val enum_int32 : t ->
           Int32.t -> Int32.t BatEnum.t

    val enum_int64 : t ->
           Int64.t -> Int64.t BatEnum.t

    val enum_nativeint : t ->
           Nativeint.t -> Nativeint.t BatEnum.t

    val enum_char : t -> unit -> char BatEnum.t

    val perturb : t ->
           t

`perturb s` returns a new state based on the given state that is, in a sense, the hash of the input state. This new state should be quite different from the input.