with Ada.Containers.Ordered_Maps;
generic
type Dimensions is (<>);
type Key_Type is private;
type Element_Type is private;
with function "<" (Left, Right : Key_Type) return Boolean is <>;
with function "=" (Left, Right : Element_Type) return Boolean is <>;
package Agpl.Containers.Ordered_Multidimensional_Maps is
type Key_Array is array (Dimensions) of Key_Type;
function "<" (L, R : Key_Array) return Boolean;
package Base_Maps is new Ada.Containers.Ordered_Maps
(Key_Array, Element_Type, "<", "=");
subtype Map is Base_Maps.Map;
end Agpl.Containers.Ordered_Multidimensional_Maps;