diff --git a/sequence.ml b/sequence.ml index 2fefe5f..76572a0 100644 --- a/sequence.ml +++ b/sequence.ml @@ -578,6 +578,8 @@ let int_range ~start ~stop k = let int_range_dec ~start ~stop k = for i = start downto stop do k i done +let bools k = k false; k true + let of_set (type s) (type v) m set = let module S = (val m : Set.S with type t = s and type elt = v) in fun k -> S.iter k set diff --git a/sequence.mli b/sequence.mli index 7c84c6a..5f73abf 100644 --- a/sequence.mli +++ b/sequence.mli @@ -422,6 +422,10 @@ val int_range_dec : start:int -> stop:int -> int t (** Iterator on decreasing integers in [stop...start] by steps -1. See {!(--^)} for an infix version *) +val bools : bool t + (** Iterates on [true] and [false] + @since NEXT_RELEASE *) + val of_set : (module Set.S with type elt = 'a and type t = 'b) -> 'b -> 'a t (** Convert the given set to a sequence. The set module must be provided. *)