Why can't std::span take std::optional<size_type>?
Why are we making the same mistake we did with std::basic_string::npos?