with Ada.Text_io; use Ada.Text_io; with Ada.Integer_Text_io; use Ada.Integer_Text_io; -- Illustrates: The same identifier can be used in two types -- Illustrates: Any ambiguities must be resolved explicitly procedure enum6 is type Color is (Red, Blue, Green); type Mood is (Happy, Blue, Green); package Color_IO is new Enumeration_IO(Color); package Mood_IO is new Enumeration_IO(Mood); use Color_IO; use Mood_IO; c: Color; begin c := Blue; -- Not ambiguous for i in Happy .. Blue loop -- Not Ambiguious put(i); end loop; new_line; -- for in Blue .. Green loop -- Ambiguious for i in Color'(Blue) .. Green loop -- Not Ambiguious put(i); end loop; end enum6;