sig
type 'a t = 'a Random_selection.t
val create : ?random_state:Core.Std.Random.State.t -> int -> 'a t
val desired_sample_size : 'a t -> int
val maybe_add : 'a t -> 'a -> unit
val to_list : 'a t -> 'a list
val select :
?random_state:Core.Std.Random.State.t ->
next:(unit -> 'a option) -> int -> 'a list
end