[status, value] = add(a, b);
Is much more unparalleled-ly (?) readable from the perspective of how a computer actually operates. In reality, this:
uint c = (uint)a + (uint)b; // (to make that other guy happy)
is really:
c = (a + b) % (sizeof(uint));
in "C", which is less readable but far more accurate.