with Ada.Text_IO; use Ada.Text_IO;
procedure Nested is

   procedure Nested1
     (G : Integer;
      H : Integer);
   A : Integer := 0;
   procedure Nested2;
   B : Integer := 0;

   procedure Nested1 
     (G : Integer;
      H : Integer)
   is
     C : Integer := 0;
   begin
      Nested2;
   end Nested1;

   D : Integer := 0;

   procedure Nested2 is
     E : Integer := 0;
   begin
      Nested1 (E, E);
      Put_Line ("Foo");
   end Nested2;

   F : Integer := 0;
begin
   Nested1 (0, 0);
   Nested2;
end Nested;
