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;