pub trait Gen { type Output; // Required method fn generate<R: Rng>(&self, rng: &mut R) -> Self::Output; }