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