### Parameters

`CFG : InferModules.ProcCfg.S`

### Signature

`module CFG : sig ... end`
`module Domain = Domain`
`type extras``= extras```
`val access_path_get_node : InferIR.AccessPath.Abs.t ‑> TaintDomain.t ‑> extras InferModules.ProcData.t ‑> TaintDomain.node option`
`val access_path_get_trace : InferIR.AccessPath.Abs.t ‑> TaintDomain.t ‑> extras InferModules.ProcData.t ‑> TaintDomain.TraceDomain.astate`
`val exp_get_node_ : abstracted:bool ‑> InferIR.AccessPath.Abs.raw ‑> TaintDomain.t ‑> extras InferModules.ProcData.t ‑> TaintDomain.node option`
`val hil_exp_get_node : ?⁠abstracted:bool ‑> InferIR.HilExp.t ‑> TaintDomain.t ‑> extras InferModules.ProcData.t ‑> TaintDomain.node option`
`val add_return_source : TraceDomain.Source.t ‑> InferIR__AccessPath.base ‑> TaintDomain.t ‑> TaintDomain.t`
`val add_actual_source : TraceDomain.Source.t ‑> int ‑> InferIR.HilExp.t InferStdlib.IStd.List.t ‑> TaintDomain.t ‑> extras InferModules.ProcData.t ‑> TaintDomain.t`
`val endpoints : InferStdlib.IStd.String.Set.t lazy_t`
`val is_endpoint : TraceDomain.Source.t ‑> bool`
`val report_trace : ?⁠sink_indexes:InferStdlib.IntSet.t ‑> TraceDomain.t ‑> InferIR.CallSite.t ‑> extras InferModules.ProcData.t ‑> unit`
`val add_sink : TraceDomain.Sink.t ‑> InferIR.HilExp.t InferStdlib.IStd.List.t ‑> TaintDomain.t ‑> extras InferModules.ProcData.t ‑> InferIR.CallSite.t ‑> TaintDomain.t`
`val apply_summary : InferIR__AccessPath.base option ‑> InferIR.HilExp.t list ‑> TaintDomain.t ‑> TaintDomain.t ‑> extras InferModules.ProcData.t ‑> InferIR.CallSite.t ‑> TaintDomain.t`
`val exec_instr : Domain.astate ‑> extras InferModules.ProcData.t ‑> 'a ‑> InferIR.HilInstr.t ‑> Domain.astate`
`val pp_session_name : CFG.Node.t ‑> InferModules__TaintAnalysis.F.formatter ‑> unit`