90
Sort_Cursor_Array:
declare
   function "<" (L, R : String_Integer_Maps.Cursor) return Boolean is
      LE : constant Integer := Element (L);  -- L freq
      RE : constant Integer := Element (R);  -- R freq
   begin
      if LE = RE then               -- counts match, so use word
         return Key (L) > Key (R);  -- order to break tie
      else
         return LE > RE;  -- sort in freq order
      end if;
   end "<";
   procedure Sort is new Ada.Containers.Generic_Array_Sort
     (Count_Type,
      String_Integer_Maps.Cursor,
      Cursor_Array,
      "<");
begin
   Sort (A);
end Sort_Cursor_Array;