Used for making an Identifiable module. Here's an example.
module Id = struct
module T = struct
type t = A | B [@@deriving_inline compare, hash, sexp][@@@end]
let of_string s = t_of_sexp (sexp_of_string s)
let to_string t = string_of_sexp (sexp_of_t t)
let module_name = "My_library.Std.Id"
end
include T
include Identifiable.Make (T)
endM : sig ... endinclude Comparable.S with type t := tinclude Base__.Comparable_intf.Polymorphic_compareascending is identical to compare. descending x y = ascending y x. These are
intended to be mnemonic when used like List.sort ~compare:ascending and List.sort
~cmp:descending, since they cause the list to be sorted in ascending or descending
order, respectively.
clamp_exn t ~min ~max returns t', the closest value to t such that
between t' ~low:min ~high:max is true.
Raises if not (min <= max).
val clamp : t ‑> min:t ‑> max:t ‑> t Or_error.tinclude Comparator.S with type t := tval comparator : (t, comparator_witness) Comparator.comparatorinclude Base__.Comparable_intf.Validate with type t := tval validate_lbound : min:t Maybe_bound.t ‑> t Validate.checkval validate_ubound : max:t Maybe_bound.t ‑> t Validate.checkval validate_bound : min:t Maybe_bound.t ‑> max:t Maybe_bound.t ‑> t Validate.check