Module InferModules.CostDomain

module F = Stdlib.Format
module BasicCost = Polynomials.NonNegativePolynomial
module VariantCostMap : sig ... end

Module to simulate a record OperationCost:BasicCost.t; AllocationCost: BasicCost.t; IOCost:BasicCost.t with a map OperationCost, AllocationCost, IOCost -> BasicCost.t

type t = VariantCostMap.t
type summary = {
post : t;
}
val pp_summary : F.formatter -> summary -> unit
val get_cost_kind : VariantCostMap.key -> VariantCostMap.t -> BasicCost.t
val get_operation_cost : VariantCostMap.t -> BasicCost.t
val map : f:(VariantCostMap.value -> VariantCostMap.value) -> VariantCostMap.t -> VariantCostMap.t
val zero_record : VariantCostMap.t
val mult_by_scalar : VariantCostMap.t -> BasicCost.t -> VariantCostMap.t
val plus : VariantCostMap.t -> VariantCostMap.t -> VariantCostMap.t
val unit_cost_atomic_operation : VariantCostMap.t
val unit_cost_allocation : VariantCostMap.t
val of_operation_cost : VariantCostMap.value -> VariantCostMap.t