type elt = t
val compare_elt : elt -> elt -> int
type t
val create : elt -> tval compare_size : t -> t -> intval cost : t -> BasicCost.tval merge : from:t -> to_:t -> unitval pp_equalities : F.formatter -> t -> unitval normalize_sums : normalizer:(elt -> elt) -> t -> unitval sum_items : t -> Item.t listval infer_equalities_from_sums : on_infer:(elt -> elt -> unit) -> normalizer:(elt -> elt) -> t -> unitval init_cost : of_node:(Node.id -> BasicCost.t) -> t -> unitval improve_cost_from_sums : on_improve:(Sum.t -> BasicCost.t -> BasicCost.t -> unit) -> of_item:(Item.t -> BasicCost.t) -> t -> unitval improve_cost_with : t -> BasicCost.t -> BasicCost.t option