sig
  type t = Lt | Eq | Gt | Incomparable
  type comparison = LogtkComparison.t
  val to_string : LogtkComparison.t -> string
  val combine : LogtkComparison.t -> LogtkComparison.t -> LogtkComparison.t
  val opp : LogtkComparison.t -> LogtkComparison.t
  val to_total : LogtkComparison.t -> int
  val of_total : int -> LogtkComparison.t
  val lexico : LogtkComparison.t -> LogtkComparison.t -> LogtkComparison.t
  val ( ++ ) : LogtkComparison.t -> LogtkComparison.t -> LogtkComparison.t
  type 'a comparator = '-> '-> LogtkComparison.t
  val ( @>> ) :
    'LogtkComparison.comparator ->
    'LogtkComparison.comparator -> 'LogtkComparison.comparator
  type ('a, 'b) combination
  val ( >>> ) :
    'LogtkComparison.comparator ->
    ('b, 'c) LogtkComparison.combination ->
    ('a, '-> '-> 'c) LogtkComparison.combination
  val last :
    'LogtkComparison.comparator ->
    ('a, LogtkComparison.t) LogtkComparison.combination
  val call : ('a, 'b) LogtkComparison.combination -> '-> '-> 'b
  val dominates :
    ('-> '-> LogtkComparison.t) -> 'a list -> 'b list -> bool
  module type PARTIAL_ORD =
    sig
      type t
      val partial_cmp :
        LogtkComparison.PARTIAL_ORD.t ->
        LogtkComparison.PARTIAL_ORD.t -> LogtkComparison.comparison
    end
end