enum and typedef