pub trait IndexOrd<V> {
    // Required method
    fn index_cmp(&self, idx: usize, elem: &V) -> Option<Ordering>;
    // Provided methods
    fn index_lt(&self, idx: usize, elem: &V) -> bool { ... }
    fn index_le(&self, idx: usize, elem: &V) -> bool { ... }
    fn index_gt(&self, idx: usize, elem: &V) -> bool { ... }
    fn index_ge(&self, idx: usize, elem: &V) -> bool { ... }
}