Module type Sink.Kind

include TaintTraceElem.Kind
type t
val compare : t -> t -> int
val matches : caller:t -> callee:t -> bool

Return true if the caller element kind matches the callee element kind. Used during trace expansion; we will only consider expanding the trace from caller into callee if this evaluates to true. This can normally just be equal, but something fuzzier may be required if t is a type that contains identifiers from the caller/callee

val pp : Absint.TaintTraceElem.F.formatter -> t -> unit
val get : IR.Procname.t -> HilExp.t list -> IR.CallFlags.t -> IR.Tenv.t -> (t * IStdlib.IntSet.t) list

return Some kind if the given procname/actuals are a sink, None otherwise