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 Odd_Even is procedure Single(Arr : in out Array_T); end Odd_Even;