diff --git a/src/libraries/stdlib/extlib.ml b/src/libraries/stdlib/extlib.ml index 51d4e1917ed6b063fe0d72ed0b84770f81e47a39..e6267f35c0f3bc5d808ccbbac287b0c76eef3bbe 100644 --- a/src/libraries/stdlib/extlib.ml +++ b/src/libraries/stdlib/extlib.ml @@ -77,6 +77,14 @@ let uncurry f x = f (fst x) (snd x) let iter_uncurry2 iter f v = iter (fun a b -> f (a, b)) v +(* ************************************************************************* *) +(** {2 Tuples} *) +(* ************************************************************************* *) + +let nest b (a, c) = (a, b), c + +let flatten ((a, b), c) = a, b, c + (* ************************************************************************* *) (** {2 Lists} *) (* ************************************************************************* *) diff --git a/src/libraries/stdlib/extlib.mli b/src/libraries/stdlib/extlib.mli index 79addc0d2c015347c0eafc0a1a55a26f2893ddaf..1ef17c991ac2e33786a6ca9cff42675ad0a05a8a 100644 --- a/src/libraries/stdlib/extlib.mli +++ b/src/libraries/stdlib/extlib.mli @@ -77,6 +77,17 @@ val iter_uncurry2: (('a -> 'b -> unit) -> 'c -> unit) -> (('a * 'b -> unit) -> 'c -> unit) +(* ************************************************************************* *) +(** {2 Tuples} *) +(* ************************************************************************* *) + +val nest: 'b -> 'a * 'c -> ('a * 'b) * 'c +(** Nest the first argument with the first element of the pair given as second + argument. *) + +val flatten: ('a * 'b) * 'c -> 'a * 'b * 'c +(** Flatten the pairs into a triplet. *) + (* ************************************************************************* *) (** {2 Lists} *) (* ************************************************************************* *)