Comparer.ApplyApply (F) (A) takes a type ('a, 'compare_a) F.t with a type parameter 'a and a compare type 'compare_a for 'a, and a comparer A, and creates a comparer for F.t with 'a instantiated to A.t.
module F : sig ... endinclude Ppx_compare_lib.Comparable.S with type t := tval compare : t Base__Ppx_compare_lib.compareinclude S with type t := t with type compare = A.compare F.comparetype ('a, 'compare_a) comparer := ('a, 'compare_a) tcompare types are equipped with functions to support use of @@deriving compare, equal, sexp on types parameterized by such singleton types for compare functions. These derived functions are never actually called, since the compare type parameters are phantom.
val sexp_of_compare : compare -> Sexplib0.Sexp.tval compare_of_sexp : Sexplib0.Sexp.t -> compare