`type t = Stdlib.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 -> Stdlib.Int32.t -> Stdlib.Int32.t`
`val nativeint : t -> Stdlib.Nativeint.t -> Stdlib.Nativeint.t`
`val int64 : t -> Stdlib.Int64.t -> Stdlib.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 -> Stdlib.Int32.t -> Stdlib.Int32.t BatEnum.t`
`val enum_int64 : t -> Stdlib.Int64.t -> Stdlib.Int64.t BatEnum.t`
`val enum_nativeint : t -> Stdlib.Nativeint.t -> Stdlib.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.