sig
  val bottom_mark : SlicingTypes.sl_mark
  val mk_user_mark :
    data:bool -> addr:bool -> ctrl:bool -> SlicingTypes.sl_mark
  val mk_gen_spare : SlicingTypes.sl_mark
  val mk_user_spare : SlicingTypes.sl_mark
  val is_bottom_mark : SlicingTypes.sl_mark -> bool
  val is_top_mark : SlicingTypes.sl_mark -> bool
  val is_spare_mark : SlicingTypes.sl_mark -> bool
  val is_ctrl_mark : SlicingTypes.sl_mark -> bool
  val is_addr_mark : SlicingTypes.sl_mark -> bool
  val is_data_mark : SlicingTypes.sl_mark -> bool
  val merge_marks : SlicingTypes.sl_mark list -> SlicingTypes.sl_mark
  val inter_marks : SlicingTypes.sl_mark list -> SlicingTypes.sl_mark
  val combine_marks :
    SlicingTypes.sl_mark ->
    SlicingTypes.sl_mark -> SlicingTypes.sl_mark * SlicingTypes.sl_mark
  val minus_marks :
    SlicingTypes.sl_mark -> SlicingTypes.sl_mark -> SlicingTypes.sl_mark
  val compare_marks : SlicingTypes.sl_mark -> SlicingTypes.sl_mark -> int
  val mark_to_string : SlicingTypes.sl_mark -> string
  val pretty_mark : Stdlib.Format.formatter -> SlicingTypes.sl_mark -> unit
  val missing_input_mark :
    call:SlicingTypes.sl_mark ->
    called:SlicingTypes.sl_mark -> SlicingTypes.sl_mark option
  val missing_output_mark :
    call:SlicingTypes.sl_mark ->
    called:SlicingTypes.sl_mark -> SlicingTypes.sl_mark option
  type sig_marks = SlicingTypes.sl_mark PdgIndex.Signature.t
  val empty_sig : SlicingMarks.sig_marks
  val get_input_mark : SlicingMarks.sig_marks -> int -> SlicingTypes.sl_mark
  val get_all_input_marks :
    SlicingMarks.sig_marks ->
    (PdgIndex.Signature.in_key * SlicingTypes.sl_mark) list
  val get_matching_input_marks :
    SlicingMarks.sig_marks ->
    Locations.Zone.t ->
    (PdgIndex.Signature.in_key * SlicingTypes.sl_mark) list
  val merge_inputs_m1_mark : SlicingMarks.sig_marks -> SlicingTypes.sl_mark
  val get_input_loc_under_mark :
    SlicingMarks.sig_marks -> Locations.Zone.t -> SlicingTypes.sl_mark
  val get_in_ctrl_mark : SlicingMarks.sig_marks -> SlicingTypes.sl_mark
  val something_visible : SlicingMarks.sig_marks -> bool
  val some_visible_out : SlicingMarks.sig_marks -> bool
  val is_topin_visible : SlicingMarks.sig_marks -> bool
  val get_marked_out_zone : SlicingMarks.sig_marks -> bool * Locations.Zone.t
  val pretty_sig : Stdlib.Format.formatter -> SlicingMarks.sig_marks -> unit
end