Add Comparable.Operators
Signed-off-by: Etienne Millon <me@emillon.org>
This commit is contained in:
parent
ac601f8f48
commit
4f1d1a0ea5
|
@ -2,3 +2,41 @@ module type S = sig
|
||||||
type t
|
type t
|
||||||
val compare : t -> t -> Ordering.t
|
val compare : t -> t -> Ordering.t
|
||||||
end
|
end
|
||||||
|
|
||||||
|
module type OPS = sig
|
||||||
|
type t
|
||||||
|
val (=) : t -> t -> bool
|
||||||
|
val (>=) : t -> t -> bool
|
||||||
|
val (>) : t -> t -> bool
|
||||||
|
val (<=) : t -> t -> bool
|
||||||
|
val (<) : t -> t -> bool
|
||||||
|
end
|
||||||
|
|
||||||
|
module Operators (X : S) = struct
|
||||||
|
type t = X.t
|
||||||
|
|
||||||
|
let (=) a b =
|
||||||
|
match X.compare a b with
|
||||||
|
| Eq -> true
|
||||||
|
| Gt | Lt -> false
|
||||||
|
|
||||||
|
let (>=) a b =
|
||||||
|
match X.compare a b with
|
||||||
|
| Gt | Eq -> true
|
||||||
|
| Lt -> false
|
||||||
|
|
||||||
|
let (>) a b =
|
||||||
|
match X.compare a b with
|
||||||
|
| Gt -> true
|
||||||
|
| Lt | Eq -> false
|
||||||
|
|
||||||
|
let (<=) a b =
|
||||||
|
match X.compare a b with
|
||||||
|
| Lt | Eq -> true
|
||||||
|
| Gt -> false
|
||||||
|
|
||||||
|
let (<) a b =
|
||||||
|
match X.compare a b with
|
||||||
|
| Lt -> true
|
||||||
|
| Gt | Eq -> false
|
||||||
|
end
|
||||||
|
|
|
@ -2,3 +2,14 @@ module type S = sig
|
||||||
type t
|
type t
|
||||||
val compare : t -> t -> Ordering.t
|
val compare : t -> t -> Ordering.t
|
||||||
end
|
end
|
||||||
|
|
||||||
|
module type OPS = sig
|
||||||
|
type t
|
||||||
|
val (=) : t -> t -> bool
|
||||||
|
val (>=) : t -> t -> bool
|
||||||
|
val (>) : t -> t -> bool
|
||||||
|
val (<=) : t -> t -> bool
|
||||||
|
val (<) : t -> t -> bool
|
||||||
|
end
|
||||||
|
|
||||||
|
module Operators (X : S) : OPS with type t = X.t
|
||||||
|
|
Loading…
Reference in New Issue