`type t`````

type for paths

`type session``= int```
`val add_call : bool ‑> t ‑> InferIR.Typ.Procname.t ‑> t ‑> t`

add a call with its sub-path, the boolean indicates whether the subtrace for the procedure should be included

`val add_skipped_call : t ‑> InferIR.Typ.Procname.t ‑> string ‑> InferBase.Location.t option ‑> t`

add a call to a procname that's had to be skipped, along with the reason and the location of the procname when known

`val contains_position : t ‑> InferIR.PredSymb.path_pos ‑> bool`

check wether the path contains the given position

`val create_loc_trace : t ‑> InferIR.PredSymb.path_pos option ‑> InferIR.Errlog.loc_trace`

Create the location trace of the path, up to the path position if specified

`val curr_node : t ‑> InferIR.Procdesc.Node.t option`

return the current node of the path

`val d : t ‑> unit`

dump a path

`val d_stats : t ‑> unit`

dump statistics of the path

`val extend : InferIR.Procdesc.Node.t ‑> InferIR.Typ.Name.t option ‑> session ‑> t ‑> t`

extend a path with a new node reached from the given session, with an optional string for exceptions

`val add_description : t ‑> string ‑> t`
`val fold_all_nodes_nocalls : (t, InferIR.Procdesc.Node.t, 'accum) InferStdlib.IStd.Container.fold`

fold over each node in the path, excluding calls, once

`val iter_shortest_sequence : (int ‑> t ‑> int ‑> InferIR.Typ.Name.t option ‑> unit) ‑> InferIR.PredSymb.path_pos option ‑> t ‑> unit`

iterate over the shortest sequence belonging to the path, restricting to those containing the given position if given. Do not iterate past the last occurrence of the given position. `f level path session exn_opt` is passed the current nesting `level` and `path` and previous `session` and possible exception `exn_opt`

`val join : t ‑> t ‑> t`

join two paths

`val pp : Format.formatter ‑> t ‑> unit`

pretty print a path

`val pp_stats : Format.formatter ‑> t ‑> unit`

pretty print statistics of the path

`val start : InferIR.Procdesc.Node.t ‑> t`

create a new path with given start node