fn permute<I: Idx + Ord, T>(data: &mut IndexVec<I, T>, map: &IndexSlice<I, I>)