constexpr decltype(auto) front() requires forward_range<D>;
constexpr decltype(auto) front() const requires forward_range<const D>;
constexpr decltype(auto) back() requires bidirectional_range<D> && common_range<D>;
constexpr decltype(auto) back() const
requires bidirectional_range<const D> && common_range<const D>;
template<random_access_range R = D> requires sized_range<R>
constexpr decltype(auto) at(range_difference_t<R> n);
template<random_access_range R = const D> requires sized_range<R>
constexpr decltype(auto) at(range_difference_t<R> n) const;