sig
  type ('node_info, 'call_info) t = {
    mutable sgn : 'node_info PdgIndex.Signature.t;
    mutable calls :
      (Cil_types.stmt * ('call_info option * 'node_info PdgIndex.Signature.t))
      list;
    other : 'node_info PdgIndex.H.t;
  }
  val t_descr :
    ni:Structural_descr.t -> ci:Structural_descr.t -> Structural_descr.t
  val sgn : ('a, 'b) PdgIndex.FctIndex.t -> 'PdgIndex.Signature.t
  val create : int -> ('a, 'b) PdgIndex.FctIndex.t
  val copy : ('a, 'b) PdgIndex.FctIndex.t -> ('a, 'b) PdgIndex.FctIndex.t
  val merge_info_calls :
    (Cil_types.stmt * ('a option * 'PdgIndex.Signature.t)) list ->
    (Cil_types.stmt * ('a option * 'PdgIndex.Signature.t)) list ->
    ('-> '-> 'b) ->
    ('-> '-> 'a) ->
    (Cil_types.stmt * ('a option * 'PdgIndex.Signature.t)) list
  val merge :
    ('a, 'b) PdgIndex.FctIndex.t ->
    ('a, 'b) PdgIndex.FctIndex.t ->
    ('-> '-> 'a) -> ('-> '-> 'b) -> ('a, 'b) PdgIndex.FctIndex.t
  val add_info_call :
    ('a, 'b) PdgIndex.FctIndex.t ->
    Cil_types.stmt -> '-> replace:bool -> unit
  val add_info_call_key :
    ('a, 'b) PdgIndex.FctIndex.t ->
    PdgIndex.Key.key -> '-> replace:bool -> unit
  val add_info_sig_call :
    (Cil_types.stmt * ('a option * 'PdgIndex.Signature.t)) list ->
    Cil_types.stmt ->
    PdgIndex.Signature.key ->
    '->
    bool -> (Cil_types.stmt * ('a option * 'PdgIndex.Signature.t)) list
  val find_call :
    ('a, 'b) PdgIndex.FctIndex.t ->
    Cil_types.stmt -> 'b option * 'PdgIndex.Signature.t
  val find_call_key :
    ('a, 'b) PdgIndex.FctIndex.t ->
    PdgIndex.Key.key -> 'b option * 'PdgIndex.Signature.t
  val find_info_call : ('a, 'b) PdgIndex.FctIndex.t -> Cil_types.stmt -> 'b
  val find_info_call_key :
    ('a, 'b) PdgIndex.FctIndex.t -> PdgIndex.Key.key -> 'b
  val find_info_sig_call :
    ('a, 'b) PdgIndex.FctIndex.t ->
    Cil_types.stmt -> PdgIndex.Signature.key -> 'a
  val find_all_info_sig_call :
    ('a, 'b) PdgIndex.FctIndex.t -> Cil_types.stmt -> 'a list
  val add_replace :
    ('a, 'b) PdgIndex.FctIndex.t -> PdgIndex.H.key -> '-> bool -> unit
  val add : ('a, 'b) PdgIndex.FctIndex.t -> PdgIndex.H.key -> '-> unit
  val add_or_replace :
    ('a, 'b) PdgIndex.FctIndex.t -> PdgIndex.H.key -> '-> unit
  val length : ('a, 'b) PdgIndex.FctIndex.t -> int
  val find_info : ('a, 'b) PdgIndex.FctIndex.t -> PdgIndex.H.key -> 'a
  val find_all : ('a, 'b) PdgIndex.FctIndex.t -> PdgIndex.H.key -> 'a list
  val find_label : ('a, 'b) PdgIndex.FctIndex.t -> Cil_datatype.Label.t -> 'a
  val fold_calls :
    (Cil_types.stmt -> 'a option * 'PdgIndex.Signature.t -> '-> 'c) ->
    ('b, 'a) PdgIndex.FctIndex.t -> '-> 'c
  val fold :
    (PdgIndex.H.key -> '-> '-> 'b) ->
    ('a, 'c) PdgIndex.FctIndex.t -> '-> 'b
end