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