pub fn min<T>(v: Vec<T>) -> T where
    T: PartialOrd + Copy + Clone