sig
  type 'a t = 'a -> 'a -> int
  val compare : 'a CCOrd.t
  val opp : 'a CCOrd.t -> 'a CCOrd.t
  val equiv : int -> int -> bool
  val int_ : int CCOrd.t
  val string_ : string CCOrd.t
  val bool_ : bool CCOrd.t
  val float_ : float CCOrd.t
  val ( <?> ) : int -> 'a CCOrd.t * 'a * 'a -> int
  val option : 'a CCOrd.t -> 'a option CCOrd.t
  val pair : 'a CCOrd.t -> 'b CCOrd.t -> ('a * 'b) CCOrd.t
  val triple :
    'a CCOrd.t -> 'b CCOrd.t -> 'c CCOrd.t -> ('a * 'b * 'c) CCOrd.t
  val list_ : 'a CCOrd.t -> 'a list CCOrd.t
  val array_ : 'a CCOrd.t -> 'a array CCOrd.t
  val map : ('a -> 'b) -> 'b CCOrd.t -> 'a CCOrd.t
end