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;