@@ -330,9 +330,8 @@ let sort ?(cmp = Stdlib.compare) seq =
330
330
let l = List. fast_sort cmp l in
331
331
fun k -> List. iter k l
332
332
333
- exception Exit_sorted
334
-
335
333
let sorted ?(cmp = Stdlib. compare) seq =
334
+ let exception Exit_sorted in
336
335
let prev = ref None in
337
336
try
338
337
seq (fun x ->
@@ -556,9 +555,8 @@ let diff (type a) ?(eq = ( = )) ?(hash = Hashtbl.hash) c1 c2 =
556
555
c2 (fun x -> Tbl. replace tbl x () );
557
556
fun yield -> c1 (fun x -> if not (Tbl. mem tbl x) then yield x)
558
557
559
- exception Subset_exit
560
-
561
558
let subset (type a ) ?(eq = ( = )) ?(hash = Hashtbl. hash) c1 c2 =
559
+ let exception Subset_exit in
562
560
let module Tbl = Hashtbl. Make (struct
563
561
type t = a
564
562
@@ -630,9 +628,8 @@ let sumf seq : float =
630
628
sum := t);
631
629
! sum
632
630
633
- exception ExitHead
634
-
635
631
let head seq =
632
+ let exception ExitHead in
636
633
let r = ref None in
637
634
try
638
635
seq (fun x ->
@@ -646,9 +643,8 @@ let head_exn seq =
646
643
| None -> invalid_arg " Iter.head_exn"
647
644
| Some x -> x
648
645
649
- exception ExitTake
650
-
651
646
let take n seq k =
647
+ let exception ExitTake in
652
648
let count = ref 0 in
653
649
try
654
650
seq (fun x ->
@@ -657,9 +653,8 @@ let take n seq k =
657
653
k x)
658
654
with ExitTake -> ()
659
655
660
- exception ExitTakeWhile
661
-
662
656
let take_while p seq k =
657
+ let exception ExitTakeWhile in
663
658
try
664
659
seq (fun x ->
665
660
if p x then
@@ -668,8 +663,6 @@ let take_while p seq k =
668
663
raise_notrace ExitTakeWhile)
669
664
with ExitTakeWhile -> ()
670
665
671
- exception ExitFoldWhile
672
-
673
666
let map_while f seq k =
674
667
let exception ExitMapWhile in
675
668
let consume x =
@@ -683,6 +676,7 @@ let map_while f seq k =
683
676
try seq consume with ExitMapWhile -> ()
684
677
685
678
let fold_while f s seq =
679
+ let exception ExitFoldWhile in
686
680
let state = ref s in
687
681
let consume x =
688
682
let acc, cont = f ! state x in
@@ -721,28 +715,25 @@ let rev seq =
721
715
let l = MList. of_iter seq in
722
716
fun k -> MList. iter_rev k l
723
717
724
- exception ExitForall
725
-
726
718
let for_all p seq =
719
+ let exception ExitForall in
727
720
try
728
721
seq (fun x -> if not (p x ) then raise_notrace ExitForall);
729
722
true
730
723
with ExitForall -> false
731
724
732
- exception ExitExists
733
-
734
725
(* * Exists there some element satisfying the predicate? *)
735
726
let exists p seq =
727
+ let exception ExitExists in
736
728
try
737
729
seq (fun x -> if p x then raise_notrace ExitExists);
738
730
false
739
731
with ExitExists -> true
740
732
741
733
let mem ?(eq = ( = )) x seq = exists (eq x) seq
742
734
743
- exception ExitFind
744
-
745
735
let find_map f seq =
736
+ let exception ExitFind in
746
737
let r = ref None in
747
738
(try
748
739
seq (fun x ->
@@ -757,6 +748,7 @@ let find_map f seq =
757
748
let find = find_map
758
749
759
750
let find_mapi f seq =
751
+ let exception ExitFind in
760
752
let i = ref 0 in
761
753
let r = ref None in
762
754
(try
@@ -790,9 +782,8 @@ let[@inline] length seq =
790
782
seq (fun _ -> incr r);
791
783
! r
792
784
793
- exception ExitIsEmpty
794
-
795
785
let is_empty seq =
786
+ let exception ExitIsEmpty in
796
787
try
797
788
seq (fun _ -> raise_notrace ExitIsEmpty);
798
789
true
0 commit comments