sig
type ('a, 'b) t = ('a, 'b) PdgIndex.FctIndex.t
val create : int -> ('a, 'b) t
val length : ('a, 'b) t -> int
val copy : ('a, 'b) t -> ('a, 'b) t
val merge :
('a, 'b) t ->
('a, 'b) t -> ('a -> 'a -> 'a) -> ('b -> 'b -> 'b) -> ('a, 'b) t
val sgn : ('a, 'b) t -> 'a PdgIndex.Signature.t
val find_info : ('a, 'b) t -> PdgIndex.Key.t -> 'a
val find_all : ('a, 'b) t -> PdgIndex.Key.t -> 'a list
val find_call :
('a, 'b) t -> Cil_types.stmt -> 'b option * 'a PdgIndex.Signature.t
val find_call_key :
('a, 'b) t -> PdgIndex.Key.t -> 'b option * 'a PdgIndex.Signature.t
val find_info_call : ('a, 'b) t -> Cil_types.stmt -> 'b
val find_info_call_key : ('a, 'b) t -> PdgIndex.Key.t -> 'b
val fold_calls :
(Cil_types.stmt -> 'a option * 'b PdgIndex.Signature.t -> 'c -> 'c) ->
('b, 'a) t -> 'c -> 'c
val add : ('a, 'b) t -> PdgIndex.Key.t -> 'a -> unit
val add_or_replace : ('a, 'b) t -> PdgIndex.Key.t -> 'a -> unit
val add_info_call :
('a, 'b) t -> Cil_types.stmt -> 'b -> replace:bool -> unit
val add_info_call_key :
('a, 'b) t -> PdgIndex.Key.t -> 'b -> replace:bool -> unit
end