sig
type 'a t = 'a PdgIndex.Signature.t
type t_in_key =
PdgIndex.Signature.t_in_key = private
InCtrl
| InNum of int
| InImpl of Locations.Zone.t
type t_out_key =
PdgIndex.Signature.t_out_key = private
OutRet
| OutLoc of Locations.Zone.t
type t_key =
PdgIndex.Signature.t_key = private
In of t_in_key
| Out of t_out_key
val empty : 'a t
val mk_undef_in_key : Locations.Zone.t -> t_in_key
val cmp_in_key : t_in_key -> t_in_key -> int
val cmp_out_key : t_out_key -> t_out_key -> int
val equal_out_key : t_out_key -> t_out_key -> bool
val find_info : 'a t -> t_key -> 'a
val find_input : 'a t -> int -> 'a
val find_in_ctrl : 'a t -> 'a
val find_in_top : 'a t -> 'a
val find_in_info : 'a t -> t_in_key -> 'a
val find_out_ret : 'a t -> 'a
val find_out_info : 'a t -> t_out_key -> 'a
val fold : ('a -> t_key * 'b -> 'a) -> 'a -> 'b t -> 'a
val fold_num_inputs : ('a -> int * 'b -> 'a) -> 'a -> 'b t -> 'a
val fold_impl_inputs :
('a -> Locations.Zone.t * 'b -> 'a) -> 'a -> 'b t -> 'a
val fold_matching_impl_inputs :
Locations.Zone.t ->
('a -> Locations.Zone.t * 'b -> 'a) -> 'a -> 'b t -> 'a
val fold_all_inputs : ('a -> t_in_key * 'b -> 'a) -> 'a -> 'b t -> 'a
val fold_all_outputs : ('a -> t_out_key * 'b -> 'a) -> 'a -> 'b t -> 'a
val pretty :
(Format.formatter -> 'a -> unit) -> Format.formatter -> 'a t -> unit
val pretty_key : Format.formatter -> t_key -> unit
val pretty_in_key : Format.formatter -> t_in_key -> unit
end