let mapi f ({ ar = ar } as ra) = let { ar = res_ar } as res = create_from ra in for i = 0 to res.vlix do Impl.unsafe_set res_ar i (f i (Impl.unsafe_get ar i)) done; res