I wonder why the single "Symbols" root row is needed? It seems superfluous and adds a level of indentation.
It's not needed but it greatly simplifies the implementation - the code constructing the tree is basically the same as before (only 1 extra line of code), there's just a single top-level category instead of several. So yeah, I agree it's unnecessary but the tree construction code is really complicated already and I don't want to make it worse by adding many more `if (categorized) do_stuff; else do_stuff2;`