support promotion of numeric values to unsigned long