My question is, why isn't there a `min() and `max()` in the standard library? Even accepting C's philosophy of a minimalist stdlib, these feel like uncontroversial functionality to me. TFA shows there's enough complexity involved in doing it correctly that it makes sense to provide an implementation rather than have everyone write the same often-subtly-incorrect macros. They could use a `__builtin_cmp(type, a, b)` which can use the correct type-casts and prevent double-evaluation without needing any macro weirdness.