template<typename... Ix> size_t index_at_t(const arr_t& a, Ix&&... idx) { return a.index_at(idx...); }
template<typename... Ix> arr data_t(const arr_t& a, Ix&&... index) { return arr(a.size() - a.index_at(index...), a.data(index...)); }