let unsafe_blit { ar = ar1 } ofs1 ({ ar = ar2 } as ra2) ofs2 len =
guarantee_ix ra2 (ofs2 + len - 1);
if ofs1 < ofs2 then
for i = len - 1 downto 0 do
Impl.unsafe_set ar2 (ofs2 + i) (Impl.unsafe_get ar1 (ofs1 + i))
done
else
for i = 0 to len - 1 do
Impl.unsafe_set ar2 (ofs2 + i) (Impl.unsafe_get ar1 (ofs1 + i))
done