sig val next_step : Random.State.t -> int -> ('a array -> int -> 'a) -> 'a array -> 'a array -> unit end