enum compilation