Whilst I wouldn’t outright dismiss adding category-theoretic concepts to school mathematics, I think it’s rather low on the priority list.
A few things I would rather be included or more emphasised:
Logic. It doesn’t have to be the most rigorous thing in the world, but techniques like truth tables would be generally useful, since they reduce the need for “reasoning” (e.g. “A and B are incompatible, because …”) to just writing down all of the possibilities (e.g. “there is no row in which A and B are true”). Whilst it doesn’t scale, it’s useful for small situations (similar to listing “pros and cons”). Logic is also useful for clearly distinguishing between premises and deductions, which (one naively hopes) would make arguments more useful: rather than talking past each other and looking for mistakes in the others’ reasoning, it may be more constructive to look ‘further back’ and see what ideas/principles are held in common, and which are in disagreement.
Statistics/probability. There is nowhere near enough emphasis on this at the moment. Not only is this is immensely interesting and useful in general (e.g. for decision making and risk taking), but in particular for those in ‘early 21st century developed world’, where big life decisions (further education, career, lifestyle, home, insurance, pension, etc.) often involve large monetary values, risk, and (especially important) complex financial instruments devised by smart people trying to take money off other people.
Manipulation (e.g. algebra) of things other than the real numbers; especially discrete things (like naturals and integers). There’s a big emphasis on geometry, which I have no problem with, but I always felt that high school maths:
Is “about numbers”. For example, I don’t think I ever saw an “x” in school which wasn’t a real number. Maybe I once saw vectors and matrices in school, but even those would (a) be distinguished with bold face or overbar to show that they’re “weird” (non-numeric) variables, and (b) are only presented as a “shorthand” for the “actual” list/grid of numbers. When something non-numeric like a shape (or a vector!) is discussed, it’s immediately encoded into a bunch of numbers (e.g. coordinate pairs).
Emphasises some notions of ‘number’ as “better” than others, e.g. the naturals are “just” the positive part of the integers; the integers are “just” the whole part of the rationals; the rationals are “just” the fractional part of the reals; the reals are “just” the non-imaginary part of the complex; etc. and hence (a) you shouldn’t “limit” yourself to e.g. the naturals (take that number theory!) and (b) if a result applies to, say, rationals but not reals then that’s a “bad” or “wrong” result (i.e. reals are acceptable counter-examples to an argument about rationals, since reals are “better” than rationals).
Of course in “actual maths”, we focus on any system/concept that interests us, whether that’s the reals, the naturals, points on a plane, sets, strings, graphs, etc. From a programming perspective, I think this emphasis on numbers may be missing an opportunity to teach abstraction; in terms of the “everyday programming” that I think schools should teach (which is getting better), I feel it would be more productive to emphasise things like shapes, text, lists, etc. in their own terms, rather than e.g. incrementing a loop index to pick out an array element to give the R/G/B values of the pixel at (x, y). Math class should support computing class in this respect, and computing class should support math class.