generic
type Index_T is (<>);
type Element_T is private;
type Array_T is array (Index_T range <>) of Element_T;
with function ">"(X, Y : in Element_T) return Boolean is <>;
package Bubble is
procedure Sort(Arr : in out Array_T);
procedure Optimized(Arr : in out Array_T);
end Bubble;