let partition p ra = let res1, res2 as res = sempty ra.strategy, sempty ra.strategy in for i = 0 to ra.vlix do let el = unsafe_get ra i in if p el then add_one res1 el else add_one res2 el done; res