pub fn wraparound_get<T>(vec: &[T], idx: isize) -> &T