sig
  type ord = Greater | Equal | Smaller | Uncomparable
  type 'a cmp = '-> '-> Order.ord
  val partition :
    'Order.cmp ->
    ('a * 'a) list ->
    ('a * 'a) list * ('a * 'a) list * ('a * 'a) list * ('a * 'a) list
  val int_of_ord : Order.ord -> int
  val opp : Order.ord -> Order.ord
  val comp : Order.ord Order.cmp
  val ge : Order.ord -> bool
  val le : Order.ord -> bool
  val lex : 'Order.cmp -> 'a list Order.cmp
  exception IncompletePrecedence of Symb.symbol * Symb.symbol
  exception IncompatibleStatus of Symb.symbol * Symb.symbol
  val rpo_fail :
    Parsetree.rpo_status Symb.SymbolMap.t ->
    Symb.symbol Order.cmp -> Term.term Order.cmp
  val rpo :
    Parsetree.rpo_status Symb.SymbolMap.t ->
    Symb.symbol Order.cmp -> Term.term Order.cmp
end