with Asis;
package Unit_Processing_Templates is

Generic
  Type Result_T is limited private;
  with Procedure Process( Unit : in Asis.Compilation_Unit;
                          Results : in out Result_T ) is <>;
  with Procedure Post_Process ( Results : in Result_T ) is <>;

procedure Process_Application_Units (Context : Asis.Context );


Generic
   with Procedure Process( Unit : in Asis.Compilation_Unit ) is <>;

   procedure Process_Application_Units_Without_State 
      (Context : Asis.Context );


end Unit_Processing_Templates;
