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