make type conversions (especially enums) far more forgiving