pub fn add_offsets<'a, I: 'a, T, F: 'a>(
    iterator: I,
    get_size: F
) -> impl Iterator<Item = (f64, T)> + 'a where
    I: Iterator<Item = T>,
    F: Fn(&T) -> f64