From d76d3b95e3ffcac3df9eb27002089cf9cfc6b5cd Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Tue, 24 Jan 2017 22:19:59 +0100 Subject: [PATCH] add `CCOrd.Infix` --- src/core/CCOrd.ml | 7 +++++++ src/core/CCOrd.mli | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/src/core/CCOrd.ml b/src/core/CCOrd.ml index 5b238eec..fb38601c 100644 --- a/src/core/CCOrd.ml +++ b/src/core/CCOrd.ml @@ -123,3 +123,10 @@ let array ord a1 a2 = *) let map f ord a b = ord (f a) (f b) + +let (>|=) x f = map f x + +module Infix = struct + let (>|=) = (>|=) + let () = () +end diff --git a/src/core/CCOrd.mli b/src/core/CCOrd.mli index a8052a93..0bf7275b 100644 --- a/src/core/CCOrd.mli +++ b/src/core/CCOrd.mli @@ -58,3 +58,11 @@ val map : ('a -> 'b) -> 'b t -> 'a t Example: [map fst CCInt.compare] compares values of type [(int * 'a)] by their first component. *) + +val (>|=) : 'b t -> ('a -> 'b) -> 'a t +(** Infix equivalent of {!map} *) + +module Infix : sig + val () : int -> ('a t * 'a * 'a) -> int + val (>|=) : 'b t -> ('a -> 'b) -> 'a t +end