Every user-level feature that you cannot implement about equally well in a library as in the core language betrays a weakness in your core language.
All languages have weaknesses, and so end up with core features. Sometimes the language evolves to the point where the core feature is not needed anymore because a library does equally well, or sometimes better. A good example is the C++ Standard Library std::array, which is better than a built-in C-style array in every way except being a little longer to type.
UFCS is better than C++ ranges. builtin sum types are better than std::variant, etc..