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;