template<typename I>
requires(I i) {
{ std::begin(i) } -> std::forward_iterator;
{ std::end(i) } -> std::sentinel_for<decltype(std::begin(i))>;
} &&
all_from_nullable_datum<typename std::iterator_traits<decltype(std::begin(
std::declval<I &>()))>::value_type>::value