let sinit strategy n f =
    let res = smake strategy n (f 0) in
    let ar = res.ar in
    for i = 1 to n - 1 do Impl.unsafe_set ar i (f i) done;
    res