sig
  type order = Lt | Eq | Gt
  type 'a ord = '-> '-> BatOrd.order
  type 'a comp = '-> '-> int
  module type Comp = sig type t val compare : BatOrd.Comp.t BatOrd.comp end
  module type Ord = sig type t val ord : BatOrd.Ord.t BatOrd.ord end
  val ord0 : int -> BatOrd.order
  val ord : 'BatOrd.comp -> 'BatOrd.ord
  module Ord :
    functor (Comp : Comp-> sig type t = Comp.t val ord : t ord end
  val comp0 : BatOrd.order -> int
  val comp : 'BatOrd.ord -> 'BatOrd.comp
  module Comp :
    functor (Ord : Ord-> sig type t = Ord.t val compare : t comp end
  val poly_comp : 'BatOrd.comp
  val poly_ord : 'BatOrd.ord
  val poly : 'BatOrd.ord
  val rev_ord0 : BatOrd.order -> BatOrd.order
  val rev_comp0 : int -> int
  val rev_ord : 'BatOrd.ord -> 'BatOrd.ord
  val rev_comp : 'BatOrd.comp -> 'BatOrd.comp
  val rev : 'BatOrd.ord -> 'BatOrd.ord
  module RevOrd :
    functor (Ord : Ord-> sig type t = Ord.t val ord : t ord end
  module RevComp :
    functor (Comp : Comp-> sig type t = Comp.t val compare : t comp end
  module Rev : functor (Ord : Ord-> sig type t = Ord.t val ord : t ord end
  type 'a eq = '-> '-> bool
  val eq_ord0 : BatOrd.order -> bool
  val eq_comp0 : int -> bool
  val eq_ord : 'BatOrd.ord -> 'BatOrd.eq
  val eq_comp : 'BatOrd.comp -> 'BatOrd.eq
  val eq : 'BatOrd.ord -> 'BatOrd.eq
  module type Eq = sig type t val eq : BatOrd.Eq.t BatOrd.eq end
  module EqOrd : functor (Ord : Ord-> sig type t = Ord.t val eq : t eq end
  module EqComp :
    functor (Comp : Comp-> sig type t = Comp.t val eq : t eq end
  module Eq : functor (Ord : Ord-> sig type t = Ord.t val eq : t eq end
  type 'a choice = '-> '-> 'a
  val min_ord : 'BatOrd.ord -> 'BatOrd.choice
  val max_ord : 'BatOrd.ord -> 'BatOrd.choice
  val min_comp : 'BatOrd.comp -> 'BatOrd.choice
  val max_comp : 'BatOrd.comp -> 'BatOrd.choice
  val min : 'BatOrd.ord -> 'BatOrd.choice
  val max : 'BatOrd.ord -> 'BatOrd.choice
  val bin_comp :
    'BatOrd.comp -> '-> '-> 'BatOrd.comp -> '-> '-> int
  val bin_ord :
    'BatOrd.ord -> '-> '-> 'BatOrd.ord -> '-> '-> BatOrd.order
  val bin_eq : 'BatOrd.eq -> '-> '-> 'BatOrd.eq -> '-> '-> bool
  val map_eq : ('-> 'b) -> 'BatOrd.eq -> 'BatOrd.eq
  val map_comp : ('-> 'b) -> 'BatOrd.comp -> 'BatOrd.comp
  val map_ord : ('-> 'b) -> 'BatOrd.ord -> 'BatOrd.ord
  module Incubator :
    sig
      val eq_by : ('-> 'b) -> 'BatOrd.eq
      val comp_by : ('-> 'b) -> 'BatOrd.comp
      val ord_by : ('-> 'b) -> 'BatOrd.ord
    end
end