It's really frustrating to watch this happen, first with using arrays to mean non void pointers, then with _Generic for dispatching on types, and now this. And the worst part to me is not necessarily that they're complicating or "bloating" C, because these
are necessary features, the worst part to me is that they seem to simultaneously recognize these features are necessary, and not want to commit to a full and proper implementation of them like e.g. proper generics or simple templates. Instead they create stuff like this, where they haven't fully committed and so it's weird and awkward to use and doesn't feel fully integrated into the language, with less clear semantics, so in the end it ends up kind of
worse than C++, whereas what I wish they'd do, if they're going to bring features from C++ to C, is just fully and properly
implement the feature, but make it as simple and limited and basic as possible — the basic concept of templates and monomorphization makes sense to me, buy I'm not exactly sure how this works at compile time.
It this point, if I want generics, I'd rather just use C++.