1A - Appendix) Stronger typing autism
This is the shit that makes my anus crumble into char and dust.
I don't wanna go too deep into compsci shenanigans, but basically he says that it's "better" to introduce a new type for each argument type. I will try to explain why.
Let's say you work in 2D space, and most of your objects are Pair(float X, float Y) - which means you operate on objects with 2 numbers with fractional component. But here's the """""""problem""""""" - what if you're a retarded pajeet who's still hungover from celebrating the opening of the new shitting street and you suddenly create an object where X and Y are swapped - Pair(Y, X)?
Well, normal people would say that you either should stop being retarded or write tests that would be able to catch this error before you show this code to anyone.
But Functional Programming Autists (and math nerds) invented a solution to severe brain damage called CATEGORY THEORY! In CT you would create a new datatype for both X and Y, so your coordinates would look like Pair(X(float value), Y(float value)). Now the compiler would tell you you're retarded if you try to reverse X and Y - they are different types!
Here's the thing - category theory is a lot of fun if you're getting paid to shit and getting paid to wipe. It's a fun thing to introduce to your team at the corporation and later use it to bully juniors or anyone who doesn't have a compsci degree. The thing is - it doesn't actually do that much aside from stroking your ego. You write more code and you still write the same amount of tests. And you write more code in your tests.
It's not a very solid point, but generally unless you write in a VERY strongly typed language like haskell - you don't need to bother with this cuz your language most likely doesn't support everything else that makes category theory worthwhile. In general - this kind of programming is fun if you enjoy
edging writing code more than delivering the results.
And C++ is not a very strongly typed language