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
|
||||
val compare : t -> t -> Ordering.t
|
||||
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
|
||||
val compare : t -> t -> Ordering.t
|
||||
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