sig type 'a t val create : ('a * float) list -> 'a Sampler.t val sample : ?state:Core.Std.Random.State.t -> 'a Sampler.t -> 'a end