sig
  type key =
    Key.key =
      SigKey of Signature.key
    | VarDecl of Cil_types.varinfo
    | Stmt of Cil_types.stmt
    | CallStmt of Cil_types.stmt
    | Label of Cil_types.stmt * Cil_types.label
    | SigCallKey of Cil_types.stmt * Signature.key
  val entry_point : key
  val top_input : key
  val param_key : int -> key
  val implicit_in_key : Locations.Zone.t -> key
  val output_key : key
  val out_from_key : Locations.Zone.t -> key
  val decl_var_key : Cil_types.varinfo -> key
  val label_key : Cil_types.stmt -> Cil_types.label -> key
  val call_key : Cil_types.stmt -> key
  val stmt_key : Cil_types.stmt -> key
  val call_input_key : Cil_types.stmt -> int -> key
  val call_outret_key : Cil_types.stmt -> key
  val call_output_key : Cil_types.stmt -> Locations.Zone.t -> key
  val call_ctrl_key : Cil_types.stmt -> key
  val call_topin_key : Cil_types.stmt -> key
  val call_from_id : '-> 'a
  val stmt : key -> Cil_types.stmt option
  val pretty_node : Format.formatter -> key -> unit
  type t = key
  val ty : t Type.t
  val name : string
  val descr : t Descr.t
  val packed_descr : Structural_descr.pack
  val reprs : t list
  val compare : t -> t -> int
  val pretty_code : Format.formatter -> t -> unit
  val internal_pretty_code : Type.precedence -> Format.formatter -> t -> unit
  val pretty : Format.formatter -> t -> unit
  val varname : t -> string
  val mem_project : (Project_skeleton.t -> bool) -> t -> bool
  val copy : t -> t
  val hash : PdgIndex.Key.key -> int
  val equal : PdgIndex.Key.key -> PdgIndex.Key.key -> bool
end