Funny how object-oriented programming got so big, when the unsolved hierarchy of numerical types has been there from the beginning.
The idea that inheritance will solve conceptual problems when we can't define whether `unsigned int` is a parent or child of `int`. And don't even start on the special casing necessary for type promotions in numerical expressions.
These thoughts brought to you by Python 3.10 generating a SyntaxWarning on "x is not 0"
(x can be either False or 0, and, fun fact, in Python, False == 0)