diff --git a/src/Sequence.ml b/src/Sequence.ml index af94eb8..47b8f70 100644 --- a/src/Sequence.ml +++ b/src/Sequence.ml @@ -407,7 +407,10 @@ let group_succ_by ?(eq=fun x y -> x = y) seq k = k l; (* yield group, and start another one *) cur := [x]); (* last list *) - if !cur <> [] then k !cur + begin match !cur with + | [] -> () + | (_::_) as l -> k l + end (*$R [1;2;3;3;2;2;3;4] diff --git a/src/Sequence.mli b/src/Sequence.mli index c7b19a2..8e1d525 100644 --- a/src/Sequence.mli +++ b/src/Sequence.mli @@ -261,7 +261,7 @@ val sorted : ?cmp:('a -> 'a -> int) -> 'a t -> bool @since 0.9 *) val group_succ_by : ?eq:('a -> 'a -> bool) -> 'a t -> 'a list t -(** Group equal consecutive elements. +(** Group equal consecutive elements. Linear time. Formerly synonym to [group]. @since 0.6 *)