unsigned long for cmp()