8. Integer Divison.
(a) I think it is a really bad design to have the basic
operation of div+mod change when the second argument changes sign.
I don't have much problem with that. These mathematical
operations aren't defined at zero, so they have to compare
against zero anyway. To quote Egner et al, "the sign of
the modulus y determines which system of representatives
of the residue class ring Z/yZ is being chosen, either
non-negative (y > 0), symmetric around zero (y < 0), or
the integers (y = 0)." Using the sign of y is ad hoc,
but it's an ad hoc choice anyway.