pub trait RandomConstructibleEnvironment {
// Provided methods
fn create_random<R>() -> R
where R: RandomConstructibleEnum,
Self: RandomConstructibleProbabilityMapProvider<R> + Sized { ... }
fn create_random_uniform<R>() -> R
where R: RandomConstructibleEnum,
Self: RandomConstructibleProbabilityMapProvider<R> + Sized { ... }
}