pub fn array_rank<T: Ord>(a: &[T]) -> Vec<usize>