From 8f30ce25b66733b8919e6fb17bf62c162b43293c Mon Sep 17 00:00:00 2001 From: Emmanuel Arrighi Date: Fri, 6 Feb 2026 19:10:34 +0100 Subject: [PATCH] Revert "CCFun(cleanup): align CCFun.compose with the stdlib" This reverts commit b649ac9dc5bfff01e7f2412ac31376cc683f9d4d. --- CHANGELOG.md | 1 - src/core/CCFun.ml | 10 ++-------- src/core/CCFun.mli | 12 +++--------- 3 files changed, 5 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 178f9a85..e5b0c1db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,6 @@ ## main - breaking: CCListLabel.compare and CCListLabel.equal takes the function on the elements as named arguments - breaking: CCListLabel.init now takes the length as a named arguments to follow the Stdlib -- breaking: invert the argument of CCFun.compose to align it with the Stdlib - breaking: change the semantic of CCFloat.{min,max} with respect to NaN to follow the Stdlib - breaking: change the semantic of CCInt.rem with respect to negative number to follow the Stdlib - breaking: change the order of argument of CCMap.add_seq to align with the stdlib. diff --git a/src/core/CCFun.ml b/src/core/CCFun.ml index 1bf3a4d0..96484352 100644 --- a/src/core/CCFun.ml +++ b/src/core/CCFun.ml @@ -10,13 +10,7 @@ include Fun let[@inline] and_pred f g x = f x && g x let[@inline] or_pred f g x = f x || g x - -[@@@iflt 5.2] - -let[@inline] compose f g x = f (g x) - -[@@@endif] - +let[@inline] compose f g x = g (f x) let[@inline] compose_binop f g x y = g (f x) (f y) let[@inline] curry f x y = f (x, y) let[@inline] uncurry f (x, y) = f x y @@ -76,7 +70,7 @@ let[@inline] with_return (type ret) f : ret = module Infix = struct (* default implem for some operators *) - let ( %> ) f g = compose g f + let ( %> ) = compose let[@inline] ( % ) f g x = f (g x) let ( let@ ) = ( @@ ) let ( ||> ) (a, b) f = f a b diff --git a/src/core/CCFun.mli b/src/core/CCFun.mli index b024f6f5..2d6a5b0e 100644 --- a/src/core/CCFun.mli +++ b/src/core/CCFun.mli @@ -17,13 +17,8 @@ val or_pred : ('a -> bool) -> ('a -> bool) -> 'a -> bool @since 3.13.1 *) -[@@@iflt 5.2] - -val compose : ('b -> 'c) -> ('a -> 'b) -> 'a -> 'c -(** [compose f g x] is [f (g x)]. Composition. - @since NEXT_RELEASE arguments are inversted *) - -[@@@endif] +val compose : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'c +(** [compose f g x] is [g (f x)]. Composition. *) val compose_binop : ('a -> 'b) -> ('b -> 'b -> 'c) -> 'a -> 'a -> 'c (** [compose_binop f g] is [fun x y -> g (f x) (f y)]. @@ -105,8 +100,7 @@ let find_array arr x = module Infix : sig val ( %> ) : ('a -> 'b) -> ('b -> 'c) -> 'a -> 'c - (** [(f %> g) x] or [(%>) f g x] is [g (f x)]. Infix version of [compose]. - The order of the arguments of [%>] and {!compose} are inverted. *) + (** [(f %> g) x] or [(%>) f g x] is [g (f x)]. Alias to [compose]. *) val ( % ) : ('b -> 'c) -> ('a -> 'b) -> 'a -> 'c (** [(f % g) x] or [(%) f g x] is [f (g x)]. Mathematical composition. *)