sig
  type t
  val empty : Compute_prec.t
  val add_constr :
    int ->
    [ `partial ] Libzipperposition.Precedence.Constr.t ->
    Compute_prec.t -> Compute_prec.t
  val add_constrs :
    (int * [ `partial ] Libzipperposition.Precedence.Constr.t) list ->
    Compute_prec.t -> Compute_prec.t
  type 'a parametrized =
      Libzipperposition.Statement.clause_t Sequence.t -> 'a
  val add_constr_rule :
    int ->
    [ `partial ] Libzipperposition.Precedence.Constr.t
    Compute_prec.parametrized -> Compute_prec.t -> Compute_prec.t
  val set_weight_rule :
    (Libzipperposition.ID.t -> int) Compute_prec.parametrized ->
    Compute_prec.t -> Compute_prec.t
  val add_status :
    (Libzipperposition.ID.t * Libzipperposition.Precedence.symbol_status)
    list -> Compute_prec.t -> Compute_prec.t
  val mk_precedence :
    Compute_prec.t ->
    Libzipperposition.Statement.clause_t Sequence.t ->
    Libzipperposition.Precedence.t
end