sig
type ('a, 'unique_id) t = private {
compare : 'a -> 'a -> int;
sexp_of_t : 'a -> Sexplib.Sexp.t;
}
type ('a, 'unique_id) t_ = ('a, 'unique_id) Comparator.t
module type Pre =
sig
type t
val compare : Comparator.Pre.t -> Comparator.Pre.t -> int
val t_of_sexp : Sexplib.Sexp.t -> Comparator.Pre.t
val sexp_of_t : Comparator.Pre.t -> Sexplib.Sexp.t
end
module type Pre_binable =
sig
type t
val compare :
Comparator.Pre_binable.t -> Comparator.Pre_binable.t -> int
val t_of_sexp : Sexplib.Sexp.t -> Comparator.Pre_binable.t
val sexp_of_t : Comparator.Pre_binable.t -> Sexplib.Sexp.t
val bin_t : Comparator.Pre_binable.t Bin_prot.Type_class.t
val bin_read_t : Comparator.Pre_binable.t Bin_prot.Read_ml.reader
val bin_read_t_ :
Comparator.Pre_binable.t Bin_prot.Unsafe_read_c.reader
val bin_read_t__ :
(int -> Comparator.Pre_binable.t) Bin_prot.Unsafe_read_c.reader
val bin_reader_t : Comparator.Pre_binable.t Bin_prot.Type_class.reader
val bin_size_t : Comparator.Pre_binable.t Bin_prot.Size.sizer
val bin_write_t : Comparator.Pre_binable.t Bin_prot.Write_ml.writer
val bin_write_t_ :
Comparator.Pre_binable.t Bin_prot.Unsafe_write_c.writer
val bin_writer_t : Comparator.Pre_binable.t Bin_prot.Type_class.writer
end
module type S =
sig
type t
val compare : t -> t -> int
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
type comparator
val comparator : (Comparator.t, Comparator.S.comparator) Comparator.t_
end
module type S_binable =
sig
type t
val compare : t -> t -> int
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
val bin_t : t Bin_prot.Type_class.t
val bin_read_t : t Bin_prot.Read_ml.reader
val bin_read_t_ : t Bin_prot.Unsafe_read_c.reader
val bin_read_t__ : (int -> t) Bin_prot.Unsafe_read_c.reader
val bin_reader_t : t Bin_prot.Type_class.reader
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write_ml.writer
val bin_write_t_ : t Bin_prot.Unsafe_write_c.writer
val bin_writer_t : t Bin_prot.Type_class.writer
type comparator
val comparator :
(Comparator.t, Comparator.S_binable.comparator) Comparator.t_
end
module Make :
functor (M : Pre) ->
sig
type t = M.t
val compare : t -> t -> int
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
type comparator
val comparator : (t, comparator) t_
end
module Make_binable :
functor (M : Pre_binable) ->
sig
type t = M.t
val compare : t -> t -> int
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
val bin_t : t Bin_prot.Type_class.t
val bin_read_t : t Bin_prot.Read_ml.reader
val bin_read_t_ : t Bin_prot.Unsafe_read_c.reader
val bin_read_t__ : (int -> t) Bin_prot.Unsafe_read_c.reader
val bin_reader_t : t Bin_prot.Type_class.reader
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write_ml.writer
val bin_write_t_ : t Bin_prot.Unsafe_write_c.writer
val bin_writer_t : t Bin_prot.Type_class.writer
type comparator
val comparator : (t, comparator) t_
end
module type S1 =
sig
type 'a t
type comparator
val comparator :
('a Comparator.S1.t, Comparator.S1.comparator) Comparator.t_
end
module Poly :
sig
type 'a t = 'a
type comparator
val comparator : ('a t, comparator) t_
end
module S_to_S1 :
functor (S : S) ->
sig
type 'a t = S.t
type comparator = S.comparator
val comparator : ('a t, comparator) t_
end
module Make1 :
functor
(M : sig
type 'a t
val compare :
'a Comparator.Make1.t -> 'a Comparator.Make1.t -> int
val sexp_of_t : 'a Comparator.Make1.t -> Sexplib.Sexp.t
end) ->
sig type comparator val comparator : ('a M.t, comparator) t_ end
end