with General;

package body Packages is

   package Separate_Package is
      package Separate_Package is
         procedure Set_Internal_X;
      end Separate_Package;

      procedure Set_Internal_X;
   end Separate_Package;

   package body Separate_Package is separate;

   function Separate_Function
     (I : Integer) return Integer is separate;

   procedure Separate_Procedure is separate;

   function Return_99 return Integer is
   begin
      General.Foo;
      Separate_Package.Set_Internal_X;
      Separate_Package.Separate_Package.Set_Internal_X;
      return 44 + Separate_Function (55);
   end Return_99;

end Packages;
