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