`include InferModules.TraceElem.S with module Kind = Access`
`type t`````
`include sig ... end`
`val compare : t ‑> t ‑> int`
`module Kind = Access`
`val call_site : t ‑> InferIR.CallSite.t`
`val kind : t ‑> Kind.t`
`val make : ?⁠indexes:InferStdlib.IntSet.t ‑> Kind.t ‑> InferIR.CallSite.t ‑> t`
`val with_callsite : t ‑> InferIR.CallSite.t ‑> t`
`val pp : InferModules.TraceElem.F.formatter ‑> t ‑> unit`
`module Set : InferStdlib.PrettyPrintable.PPSet with type PPSet.elt = t`
`val is_write : t ‑> bool`
`val is_container_write : t ‑> bool`
`val map : f:(InferIR.AccessPath.t ‑> InferIR.AccessPath.t) ‑> t ‑> t`
`val is_direct : t ‑> bool`

return true if the given trace elem represents a direct access, not a call that eventually leads to an access

`val make_container_access : InferIR.AccessPath.t ‑> InferIR.Typ.Procname.t ‑> is_write:bool ‑> InferBase.Location.t ‑> t`
`val make_field_access : InferIR.AccessPath.t ‑> is_write:bool ‑> InferBase.Location.t ‑> t`
`val make_unannotated_call_access : InferIR.Typ.Procname.t ‑> InferBase.Location.t ‑> t`