with Ada.Containers.Indefinite_Hashed_Maps;
pragma Elaborate_All (Ada.Containers.Indefinite_Hashed_Maps);

with Ada.Containers.Indefinite_Vectors;
pragma Elaborate_All (Ada.Containers.Indefinite_Vectors);

with Ada.Containers.Vectors;
pragma Elaborate_All (Ada.Containers.Vectors);

with Ada.Strings.Less_Case_Insensitive;
with Ada.Strings.Equal_Case_Insensitive;
with Ada.Strings.Hash_Case_Insensitive;

package Anagram_Types is
   pragma Preelaborate;

   package String_Vectors is
      new Ada.Containers.Indefinite_Vectors
       (Positive,
        String,
        Ada.Strings.Less_Case_Insensitive);

   use String_Vectors;

   package Map_Types is
      new Ada.Containers.Indefinite_Hashed_Maps
       (String,
        String_Vectors.Vector,
        Ada.Strings.Hash_Case_Insensitive,
        Ada.Strings.Equal_Case_Insensitive);

   --type String_Vector_Access is access all Vector_Type;
   --for String_Vector_Access'Storage_Size use 0;

   --function To_Access is
   --   new Map_Types.Generic_Element (String_Vector_Access);

   use Map_Types;

   package Cursor_Vectors is
      new Ada.Containers.Vectors
       (Positive,
        Map_Types.Cursor);

end Anagram_Types;




