`type t````=` `{`

`cond : Condition.t;`
`trace : ConditionTrace.t;`

`}```
`val make : Condition.t ‑> ConditionTrace.t ‑> t`
`val pp : F.formatter ‑> t ‑> unit`
`val have_similar_bounds : t ‑> t ‑> bool`
`val xcompare : lhs:t ‑> rhs:t ‑> [> `LeftSubsumesRight | `NotComparable | `RightSubsumesLeft ]`
`val subst : (InferModules.Itv.Bound.t InferModules.AbstractDomain.Types.bottom_lifted InferModules.Itv.SymbolMap.t * ValTraceSet.astate InferModules.Itv.SymbolMap.t) ‑> InferIR.Typ.Procname.t ‑> InferIR.Typ.Procname.t ‑> InferBase.Location.t ‑> t ‑> t option`
`val set_buffer_overrun_u5 : t ‑> InferBase.IssueType.t ‑> InferBase.IssueType.t`
`val check : report:(Condition.t ‑> ConditionTrace.t ‑> InferBase.IssueType.t ‑> unit) ‑> t ‑> bool`