sig
  type symbol = Symbol.symbol
  type clause = Term.clause
  type sorts
  val infer :
    print:bool -> Sort_inference.clause list -> Sort_inference.sorts
  val add_constant :
    Sort_inference.sorts ->
    Sort_inference.symbol -> Sort_inference.symbol -> unit
  val constants_partition :
    Sort_inference.sorts -> Sort_inference.symbol list list
  val max_constant_partition_size : Sort_inference.sorts -> int
  val print : Sort_inference.sorts -> unit
end