package Generator_Of_Strings_And_Stat_Values is
    subtype Key_Type is String (1 .. 4);
    type Value_Type is private;
    type Item_Type is
        record
            Key : Key_Type;
            Val : Value_Type;
        end record;
    type Vector_Type is array (Positive range <>) of Item_Type;
    procedure Generate (Vector : in out Vector_Type);
    procedure Generate2 (Vector : in out Vector_Type);
    procedure Generate_Ascending (Vector : in out Vector_Type);
    procedure Generate_Descending (Vector : in out Vector_Type);

    procedure Assign (Dest : in out Key_Type; Source : in Key_Type);
    procedure Assign (Dest : in out Value_Type; Source : in Value_Type);
    function Equals (Left, Right : Key_Type) return Boolean;
    function Less (Left, Right : Key_Type) return Boolean;

private
    type Value_Type is new Integer;
end Generator_Of_Strings_And_Stat_Values;