fn make_bins(limits: &Vec<usize>, data: &Vec<usize>) -> Vec<Vec<usize>> {
    let mut bins: Vec<Vec<usize>> = Vec::with_capacity(limits.len() + 1);
    for _ in 0..=limits.len() {bins.push(Vec::new());}

    limits.iter().enumerate().for_each(|(idx, limit)| {
        data.iter().for_each(|elem| {
                 if idx == 0 && elem < limit              { bins[0].push(*elem); }