Generally before using
rem, think twice.
In most cases
divMod and friends are the right choice,
because they fulfill more of the wanted properties.
On some systems
rem are more efficient
and if you only use positive numbers, you may be happy with them.
But we cannot warrant the efficiency advantage.
See also: Daan Leijen: Division and Modulus for Computer Scientists http://www.cs.uu.nl/%7Edaan/download/papers/divmodnote-letter.pdf, http://www.haskell.org/pipermail/haskell-cafe/2007-August/030394.html
divMod does not specify exactly what
a should be,
mainly because there is no sensible way to define it in general.
For an instance of
it is expected that
a will round towards 0 and
a will round towards minus infinity.
Minimal definition: nothing required