pub fn sample_iter<T>(
    rng: &mut impl Rng,
    size: usize,
    iter: impl ExactSizeIterator<Item = T>
) -> impl Iterator<Item = T>