sig
type tm = MarkPair.t
type t = tm PdgIndex.Signature.t
val empty : 'a PdgIndex.Signature.t
val pretty : Format.formatter -> MarkPair.t PdgIndex.Signature.t -> unit
val get_input_mark : t -> int -> tm
val get_in_ctrl_mark : t -> tm
val get_in_top_mark : t -> tm
val get_all_input_marks : t -> (PdgIndex.Signature.t_in_key * tm) list
exception Visible
val raise_if_visible : unit -> 'a * MarkPair.t -> unit
val some_visible_out : MarkPair.t PdgIndex.Signature.t -> bool
val is_topin_visible : t -> bool
val ctrl_visible : t -> bool
val some_visible_in : t -> bool
val merge_inputs_m1_mark : MarkPair.t PdgIndex.Signature.t -> MarkPair.t
val get_input_loc_under_mark :
MarkPair.t PdgIndex.Signature.t -> Locations.Zone.t -> MarkPair.t
val something_visible : t -> bool
val combined_marks : MarkPair.t PdgIndex.Signature.t -> MarkPair.t
val add_spare : (int * MarkPair.t) list -> int -> (int * MarkPair.t) list
val get_called_marks :
MarkPair.t PdgIndex.Signature.t option -> MarkPair.t PdgIndex.Signature.t
val check_input :
MarkPair.t PdgIndex.Signature.t ->
(PdgIndex.Signature.t_in_key * MarkPair.t) list * bool ->
PdgIndex.Signature.t_in_key * MarkPair.t ->
(PdgIndex.Signature.t_in_key * MarkPair.t) list * bool
val check_input_marks :
MarkPair.t PdgIndex.Signature.t ->
(PdgIndex.Signature.t_in_key * MarkPair.t) list ->
(PdgIndex.Signature.t_in_key * MarkPair.t) list * bool
val check_called_input_marks :
MarkPair.t PdgIndex.Signature.t ->
MarkPair.t PdgIndex.Signature.t option ->
(PdgIndex.Signature.t_in_key * MarkPair.t) list * bool
val get_marked_out_zone :
T.t_pdg_mark PdgIndex.Signature.t -> bool * Locations.Zone.t
end