mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-07 19:55:31 -05:00
add aliases to deprecated functions from String, add Fun.opaque_identity
This commit is contained in:
parent
790e665441
commit
3190278d86
4 changed files with 54 additions and 0 deletions
|
|
@ -15,6 +15,16 @@ let (@@) f x = f x
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if OCAML_MAJOR >= 4 && OCAML_MINOR >= 3
|
||||||
|
|
||||||
|
let opaque_identity = Sys.opaque_identity
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
let opaque_identity x = x
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
let compose f g x = g (f x)
|
let compose f g x = g (f x)
|
||||||
|
|
||||||
let compose_binop f g x y = g (f x) (f y)
|
let compose_binop f g x y = g (f x) (f y)
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,12 @@ val finally2 : h:(unit -> _) -> ('a -> 'b -> 'c) -> 'a -> 'b -> 'c
|
||||||
[h ()] is called whether [f x y] rose an exception or not.
|
[h ()] is called whether [f x y] rose an exception or not.
|
||||||
@since 0.16 *)
|
@since 0.16 *)
|
||||||
|
|
||||||
|
val opaque_identity : 'a -> 'a
|
||||||
|
(** [opaque_identity x] is like [x], but prevents Flambda from using [x]'s
|
||||||
|
definition for optimizing it (flambda is an optimization/inlining pass
|
||||||
|
in OCaml >= 4.03).
|
||||||
|
@since NEXT_RELEASE *)
|
||||||
|
|
||||||
(** {2 Monad}
|
(** {2 Monad}
|
||||||
|
|
||||||
Functions with a fixed domain are monads in their codomain *)
|
Functions with a fixed domain are monads in their codomain *)
|
||||||
|
|
|
||||||
|
|
@ -639,6 +639,26 @@ let exists2 p s1 s2 =
|
||||||
try iter2 (fun c1 c2 -> if p c1 c2 then raise MyExit) s1 s2; false
|
try iter2 (fun c1 c2 -> if p c1 c2 then raise MyExit) s1 s2; false
|
||||||
with MyExit -> true
|
with MyExit -> true
|
||||||
|
|
||||||
|
(** {2 Ascii functions} *)
|
||||||
|
|
||||||
|
#if OCAML_MAJOR >= 4 && OCAML_MINOR >= 3
|
||||||
|
|
||||||
|
let capitalize_ascii = String.capitalize_ascii
|
||||||
|
let uncapitalize_ascii = String.uncapitalize_ascii
|
||||||
|
let uppercase_ascii = String.uppercase_ascii
|
||||||
|
let lowercase_ascii = String.lowercase_ascii
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
let capitalize_ascii = String.capitalize
|
||||||
|
let uncapitalize_ascii = String.uncapitalize
|
||||||
|
let uppercase_ascii = String.uppercase
|
||||||
|
let lowercase_ascii = String.lowercase
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
let pp buf s =
|
let pp buf s =
|
||||||
Buffer.add_char buf '"';
|
Buffer.add_char buf '"';
|
||||||
Buffer.add_string buf s;
|
Buffer.add_string buf s;
|
||||||
|
|
|
||||||
|
|
@ -378,6 +378,24 @@ val exists2 : (char -> char -> bool) -> string -> string -> bool
|
||||||
@raise Invalid_argument if the strings have not the same length
|
@raise Invalid_argument if the strings have not the same length
|
||||||
@since 0.12 *)
|
@since 0.12 *)
|
||||||
|
|
||||||
|
(** {2 Ascii functions}
|
||||||
|
|
||||||
|
Those functions are deprecated in {!String} since 4.03, so we provide
|
||||||
|
a stable alias for them even in older versions *)
|
||||||
|
|
||||||
|
val capitalize_ascii : string -> string
|
||||||
|
(** See {!String}. @since NEXT_RELEASE *)
|
||||||
|
|
||||||
|
val uncapitalize_ascii : string -> string
|
||||||
|
(** See {!String}. @since NEXT_RELEASE *)
|
||||||
|
|
||||||
|
val uppercase_ascii : string -> string
|
||||||
|
(** See {!String}. @since NEXT_RELEASE *)
|
||||||
|
|
||||||
|
val lowercase_ascii : string -> string
|
||||||
|
(** See {!String}. @since NEXT_RELEASE *)
|
||||||
|
|
||||||
|
|
||||||
(** {2 Splitting} *)
|
(** {2 Splitting} *)
|
||||||
|
|
||||||
module Split : sig
|
module Split : sig
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue