use std::collections::HashMap;
pub fn hash_map<K, V>(slice: &[(K, V)]) -> HashMap<K, V>
where
K: Clone + Eq + std::hash::Hash + PartialEq,
V: Clone,
{
slice.iter().cloned().collect()
}
pub fn upper_bounds<T>(bounds: &[(T, T)]) -> Vec<T>
where
T: Copy,
{
bounds.iter().map(|&(_, m)| m).collect()
}