http://www.adaconcept.com/programs/prioritasossor.ads
with Ada.Finalization;                                                         -- a destruktor elkeszitesehez


generic
   type elem_tipus is private;
   with procedure elemtipustkiir(mit:in elem_tipus);
   with function "<"(A,B:elem_tipus) return boolean is <>;
package prioritasossor is

   -- destruktorral rendelkezo atlatszatlan, korlatozott tipus  ((szarmaztatas...))
   type prioritasossor_tipus is new Ada.Finalization.Limited_Controlled with private;

   procedure betesz(ps:in out prioritasossor_tipus; mit: in elem_tipus);

   procedure kiir(ps:in prioritasossor_tipus);

 private

   type sor_elem;
   type M_sor_elem is access sor_elem;
   type sor_elem is record
                    adat:elem_tipus;
                    kovetkezo:M_sor_elem;
                    end record;


   type prioritasossor_tipus is new Ada.Finalization.Limited_Controlled with
      record
        eleje:M_sor_elem:=null;                                                -- kezdetben a sor ures
      end record;


   procedure Finalize ( ps : in out prioritasossor_tipus );                    -- Ez KELL, hogy legyen a neve!!!

end prioritasossor;