function compareTimers(a, b) {
				// Sort first by absolute timing
				if (a.callAt < b.callAt) {
					return -1;
				}
				if (a.callAt > b.callAt) {
					return 1;
				}

				// Sort next by immediate, immediate timers take precedence
				if (a.immediate && !b.immediate) {
					return -1;
				}
				if (!a.immediate && b.immediate) {
					return 1;
				}

				// Sort next by creation time, earlier-created timers take precedence
				if (a.createdAt < b.createdAt) {
					return -1;
				}
				if (a.createdAt > b.createdAt) {
					return 1;
				}

				// Sort next by id, lower-id timers take precedence
				if (a.id < b.id) {
					return -1;
				}
				if (a.id > b.id) {
					return 1;
				}

				// As timer ids are unique, no fallback `0` is necessary
			}
Timer comparitor

@param {Timer} a
@param {Timer} b
@returns {number}