template<class T>
concept is-extent-slice = see below;
template<class T>
concept is-range-slice = see below;
template<class IndexType, class S>
constexpr auto canonical-index(S s);
template<class IndexType, class OffsetType, class SpanType, class... StrideTypes>
constexpr auto canonical-range-slice(OffsetType offset, SpanType span, StrideTypes... strides);
template<class IndexType, class S>
constexpr auto canonical-slice(S s);