generic type Data_Type is limited private; type Data_Type_Access is access all Data_Type; type Index_Type is range <>; First_Element : Index_Type; type Data_Array is array (Index_Type range <>) of aliased Data_Type; with procedure Initialize (Self : in out Data_Type) is <>; with procedure Finalize (Self : in out Data_Type) is <>; with procedure Copy (Dst : in out Data_Type; Src : in Data_Type) is <>; with package Data_Sequences is
package Data_Sequences is new DDS_Support.Sequences_Generic (Element => Data_Type, Element_Access => Data_Type_Access, Index_Type => Index_Type, First_Element => First_Element, Element_Array => Data_Array, Initialize => Initialize, Finalize => Finalize, Copy => Copy);
type Data_Type_Access is access all Data_Type;
type Data_Array is array (Index_Type range <>) of aliased Data_Type;
First_Element : Index_Type;