Module CostDomain.BasicCostWithReason

type t = {
cost : BasicCost.t;
top_pname_opt : IR.Procname.t option;
}
val one : ?⁠autoreleasepool_trace:BO.Bounds.BoundTrace.t -> unit -> t
val zero : t
val is_top : t -> bool
val of_basic_cost : BasicCost.t -> t
val is_unreachable : t -> bool
val plus : t -> t -> t
val subst : IR.Procname.t -> IBase.Location.t -> t -> BO.Bounds.Bound.eval_sym -> BO.FuncPtr.Set.eval_func_ptrs -> (IR.Procname.t -> t option) -> default_closure_cost:BO.Ints.NonNegativeInt.t -> t
val degree : t -> BO.Polynomials.Degree.t option
val polynomial_traces : is_autoreleasepool_trace:bool -> t -> Absint.Errlog.loc_trace
val pp_hum : Stdlib.Format.formatter -> t -> unit