ascending is identical to compare. descending x y = ascending y x. These are
intended to be mnemonic when used like List.sort ~cmp:ascending and List.sort
~cmp:descending, since they cause the list to be sorted in ascending or descending
order, respectively.
interruptible_pause span sleeps for span time unless interrupted (e.g. by delivery
of a signal), in which case the remaining unslept portion of time is returned.