Represents either

- the existence of a program path from the current method to the eventual acquisition of a lock ("eventually"), or,
- the "first" lock being taken *in the current method* and, before its release, the eventual acquisition of "eventually"

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

`first : Event.t;`
`eventually : Event.t;`

`}```
`include InferStdlib.PrettyPrintable.PrintableOrderedType with type PrintableOrderedType.t := t`
`include InferStdlib.IStd.Caml.Set.OrderedType`
`type t`````
`val compare : t ‑> t ‑> int`
`val pp : InferStdlib.PrettyPrintable.F.formatter ‑> t ‑> unit`
`val may_deadlock : t ‑> t ‑> bool`

check if two pairs are symmetric in terms of locks, where locks are compared modulo the variable name at the root of each path.

`val get_loc : t ‑> InferBase.Location.t`
`val make_trace : ?⁠header:string ‑> InferIR.Typ.Procname.t ‑> t ‑> InferIR.Errlog.loc_trace`