private static function compare(DateTimeRange $a, DateTimeRange $b)
	{
		if (!$a->interval->equals($b->interval))
		{
			throw new \InvalidArgumentException('Intervals of ranges are not equal.');
		}

		if ($a->equals($b))
		{
			return 0;
		}

		if ($a->start()->isAfter($b->start()))
		{
			return 1;
		}

		if ($a->start()->isBefore($b->start()) || $a->end()->isBefore($b->end()))
		{
			return -1;
		}

		return 1;
	}