fn minimize_vals(&mut self, storage: &[C::Storage]) {

        self.min_val.clear();

        // We'll visit each non-`None` value, maintaining the indexes of the least values in `self.min_val`.
        let mut iter = self.min_key.iter().cloned().flat_map(|idx| self.cursors[idx].get_val(&storage[idx]).map(|val| (idx, val)));
        if let Some((idx, val)) = iter.next() {
            let mut min_val = val;
            self.min_val.push(idx);
            for (idx, val) in iter {
                match val.cmp(&min_val) {
                    std::cmp::Ordering::Less => {
                        self.min_val.clear();
                        self.min_val.push(idx);
                        min_val = val;
                    }
                    std::cmp::Ordering::Equal => {
                        self.min_val.push(idx);
                    }
                    std::cmp::Ordering::Greater => { }
                }
            }
        }
    }
Initialize min_val with the indices of minimum key cursors with the minimum value.

This method scans the current values of cursor with minimum keys, and tracks the
indices of cursors whose value equals the minimum valid value seen so far. As it
goes, if it observes an improved value it clears the current list, updates the minimum
value, and continues.
differential-dataflow/src/trace/cursor/cursor_list.rs