33
procedure Copy
  (A : in     Array_Type;
   V : in out Vector;
   I : in     Extended_Index) is
     
   J : Extended_Index := I - 1;
begin
   V.Insert_Space (Before => I, Count => A'Length);
   -- dig the hole (no elements yet)
   for K in A'Range loop
      J := J + 1;
      V.Replace_Element (Index => J, By => A (K));
      -- fill the hole (with elements)
   end loop;
   ...
end Copy;