constexpr decltype(auto) operator*();
constexpr decltype(auto) operator*() const
  requires dereferenceable<const I>;
constexpr auto operator->() const noexcept
  requires contiguous_iterator<I>;
constexpr decltype(auto) operator[](iter_difference_t<I> n) const
  requires random_access_iterator<I>;