@@ -123,8 +123,8 @@ let rangeBy start finish ~step =
123123 let arr = makeUninitializedUnsafe nb in
124124 let cur = ref start in
125125 for i = 0 to nb - 1 do
126- setUnsafe arr i ! cur;
127- cur .contents< - ! cur + step ;
126+ setUnsafe arr i cur.contents ;
127+ cur.contents< - cur.contents + step ;
128128 done ;
129129 arr
130130
@@ -164,15 +164,15 @@ let concatMany arrs =
164164 let lenArrs = length arrs in
165165 let totalLen = ref 0 in
166166 for i = 0 to lenArrs - 1 do
167- totalLen .contents< - ! totalLen + length (getUnsafe arrs i)
167+ totalLen .contents< - totalLen.contents + length (getUnsafe arrs i)
168168 done ;
169- let result = makeUninitializedUnsafe ! totalLen in
170- totalLen .contents< - 0 ;
169+ let result = makeUninitializedUnsafe totalLen.contents in
170+ totalLen.contents< - 0 ;
171171 for j = 0 to lenArrs - 1 do
172172 let cur = getUnsafe arrs j in
173173 for k = 0 to length cur - 1 do
174- setUnsafe result ! totalLen (getUnsafe cur k);
175- incr totalLen
174+ setUnsafe result totalLen.contents (getUnsafe cur k);
175+ totalLen.contents < - totalLen.contents + 1
176176 done
177177 done ;
178178 result
@@ -269,31 +269,31 @@ let getByU a p =
269269 let l = length a in
270270 let i = ref 0 in
271271 let r = ref None in
272- while ! r = None && ! i < l do
273- let v = ( getUnsafe a ! i) in
272+ while r.contents = None && i.contents < l do
273+ let v = getUnsafe a i.contents in
274274 if p v [@ bs] then
275275 begin
276- r .contents< - Some v;
276+ r.contents< - Some v;
277277 end ;
278- incr i
278+ i.contents < - i.contents + 1
279279 done ;
280- ! r
280+ r.contents
281281
282282let getBy a p = getByU a (fun[@ bs] a -> p a)
283283
284284let getIndexByU a p =
285285 let l = length a in
286286 let i = ref 0 in
287287 let r = ref None in
288- while ! r = None && ! i < l do
289- let v = ( getUnsafe a ! i) in
288+ while r.contents = None && i.contents < l do
289+ let v = getUnsafe a i.contents in
290290 if p v [@ bs] then
291291 begin
292- r .contents< - Some ! i ;
292+ r .contents< - Some i.contents ;
293293 end ;
294- incr i
294+ i.contents < - i.contents + 1
295295 done ;
296- ! r
296+ r.contents
297297
298298let getIndexBy a p = getIndexByU a (fun[@ bs] a -> p a)
299299
@@ -305,11 +305,11 @@ let keepU a f =
305305 let v = (getUnsafe a i) in
306306 if f v [@ bs] then
307307 begin
308- setUnsafe r ! j v;
309- incr j
308+ setUnsafe r j.contents v;
309+ j.contents < - j.contents + 1
310310 end
311311 done ;
312- truncateToLengthUnsafe r ! j ;
312+ truncateToLengthUnsafe r j.contents ;
313313 r
314314
315315let keep a f = keepU a (fun [@bs ] a -> f a)
@@ -322,11 +322,11 @@ let keepWithIndexU a f =
322322 let v = (getUnsafe a i) in
323323 if f v i [@ bs] then
324324 begin
325- setUnsafe r ! j v;
326- incr j
325+ setUnsafe r j.contents v;
326+ j.contents < - j.contents + 1
327327 end
328328 done ;
329- truncateToLengthUnsafe r ! j ;
329+ truncateToLengthUnsafe r j.contents ;
330330 r
331331
332332let keepWithIndex a f = keepWithIndexU a (fun [@bs ] a i -> f a i)
@@ -341,11 +341,11 @@ let keepMapU a f =
341341 | None -> ()
342342 | Some v ->
343343 begin
344- setUnsafe r ! j v;
345- incr j
344+ setUnsafe r j.contents v;
345+ j.contents < - j.contents + 1
346346 end
347347 done ;
348- truncateToLengthUnsafe r ! j ;
348+ truncateToLengthUnsafe r j.contents ;
349349 r
350350
351351let keepMap a f = keepMapU a (fun[@ bs] a -> f a)
@@ -368,38 +368,38 @@ let mapWithIndex a f = mapWithIndexU a (fun[@bs] a b -> f a b)
368368let reduceU a x f =
369369 let r = ref x in
370370 for i = 0 to length a - 1 do
371- r .contents< - f ! r (getUnsafe a i) [@ bs]
371+ r .contents< - f r.contents (getUnsafe a i) [@ bs]
372372 done ;
373- ! r
373+ r.contents
374374
375375let reduce a x f = reduceU a x (fun[@ bs] a b -> f a b)
376376
377377let reduceReverseU a x f =
378378 let r = ref x in
379379 for i = length a - 1 downto 0 do
380- r .contents< - f ! r (getUnsafe a i) [@ bs]
380+ r .contents< - f r.contents (getUnsafe a i) [@ bs]
381381 done ;
382- ! r
382+ r.contents
383383
384384let reduceReverse a x f = reduceReverseU a x (fun[@ bs] a b -> f a b)
385385
386386let reduceReverse2U a b x f =
387387 let r = ref x in
388388 let len = Pervasives. min (length a) (length b) in
389389 for i = len - 1 downto 0 do
390- r .contents< - f ! r (getUnsafe a i) (getUnsafe b i) [@ bs]
390+ r .contents< - f r.contents (getUnsafe a i) (getUnsafe b i) [@ bs]
391391 done ;
392- ! r
392+ r.contents
393393
394394let reduceReverse2 a b x f =
395395 reduceReverse2U a b x (fun [@bs ] a b c -> f a b c)
396396
397397let reduceWithIndexU a x f =
398398 let r = ref x in
399399 for i = 0 to length a - 1 do
400- r .contents< - f ! r (getUnsafe a i) i [@ bs]
400+ r .contents< - f r.contents (getUnsafe a i) i [@ bs]
401401 done ;
402- ! r
402+ r.contents
403403
404404let reduceWithIndex a x f =
405405 reduceWithIndexU a x (fun[@ bs] a b c -> f a b c)
@@ -485,16 +485,16 @@ let partitionU a f =
485485 for ii = 0 to l - 1 do
486486 let v = getUnsafe a ii in
487487 if f v [@ bs] then (
488- setUnsafe a1 ! i v;
489- incr i
488+ setUnsafe a1 i.contents v;
489+ i.contents < - i.contents + 1
490490 )
491491 else (
492- setUnsafe a2 ! j v;
493- incr j
492+ setUnsafe a2 j.contents v;
493+ j.contents < - j.contents + 1
494494 )
495495 done ;
496- truncateToLengthUnsafe a1 ! i ;
497- truncateToLengthUnsafe a2 ! j ;
496+ truncateToLengthUnsafe a1 i.contents ;
497+ truncateToLengthUnsafe a2 j.contents ;
498498 (a1, a2)
499499
500500let partition a f = partitionU a (fun [@bs ] x -> f x)
0 commit comments