sig
  type t
  type to_prop
  val empty_to_prop : Fct_slice.??.to_prop
  val new_empty_slice :
    SlicingInternals.fct_info -> SlicingInternals.fct_slice
  val new_copied_slice :
    SlicingInternals.fct_slice -> SlicingInternals.fct_slice
  val new_empty_fi_marks : SlicingInternals.fct_info -> Fct_slice.??.t
  val fi_marks : SlicingInternals.fct_info -> Fct_slice.??.t option
  val get_fi_node_mark :
    SlicingInternals.fct_info -> PdgIndex.Key.t -> SlicingTypes.sl_mark
  val new_init_slice :
    SlicingInternals.fct_info ->
    SlicingInternals.ff_marks -> SlicingInternals.fct_slice
  val get_ff_marks : SlicingInternals.fct_slice -> Fct_slice.??.t
  val merge :
    SlicingInternals.fct_slice ->
    SlicingInternals.fct_slice -> SlicingInternals.ff_marks
  val get_node_mark :
    SlicingInternals.fct_slice -> PdgIndex.Key.t -> SlicingTypes.sl_mark
  val get_node_marks :
    SlicingInternals.fct_slice -> PdgIndex.Key.t -> SlicingTypes.sl_mark list
  val get_sgn : SlicingInternals.fct_slice -> SlicingMarks.sig_marks option
  val get_new_marks :
    SlicingInternals.fct_slice ->
    SlicingTypes.sl_mark PdgMarks.select ->
    SlicingTypes.sl_mark PdgMarks.select
  val get_all_input_marks : Fct_slice.??.-> Fct_slice.??.to_prop
  val get_matching_input_marks :
    Fct_slice.??.-> Locations.Zone.t -> Fct_slice.??.to_prop
  val mark_and_propagate :
    Fct_slice.??.->
    ?to_prop:Fct_slice.??.to_prop ->
    SlicingTypes.sl_mark PdgMarks.select -> Fct_slice.??.to_prop
  val mark_spare_call_nodes :
    SlicingInternals.fct_slice -> Cil_types.stmt -> Fct_slice.??.to_prop
  val mark_visible_output : Fct_slice.??.-> unit
  val mark_visible_inputs :
    Fct_slice.??.-> Fct_slice.??.to_prop -> Fct_slice.??.to_prop
  val marks_for_caller_inputs :
    PdgTypes.Pdg.t ->
    Fct_slice.??.->
    Cil_types.stmt ->
    Fct_slice.??.to_prop ->
    SlicingInternals.fct_info -> SlicingTypes.sl_mark PdgMarks.select * bool
  val marks_for_call_outputs :
    Fct_slice.??.to_prop ->
    (Cil_types.stmt *
     (PdgIndex.Signature.out_key * SlicingTypes.sl_mark) list)
    list
  val get_call_output_marks :
    ?spare_info:Fct_slice.CallInfo.call_id option ->
    Fct_slice.CallInfo.t ->
    (PdgIndex.Signature.out_key * SlicingTypes.sl_mark) list
  val persistant_in_marks_to_prop :
    SlicingInternals.fct_info ->
    Fct_slice.??.to_prop -> SlicingTypes.sl_mark PdgMarks.pdg_select
  val check_called_marks :
    (PdgIndex.Signature.out_key * SlicingTypes.sl_mark) list ->
    SlicingInternals.fct_slice -> SlicingTypes.sl_mark PdgMarks.select * bool
  val fold_calls :
    (Cil_types.stmt -> Fct_slice.CallInfo.t -> '-> 'a) ->
    SlicingInternals.fct_slice -> '-> 'a
  val change_call :
    SlicingInternals.project ->
    SlicingInternals.fct_slice ->
    Cil_types.stmt -> SlicingInternals.called_fct option -> unit
  val debug_marked_ff :
    Format.formatter -> SlicingInternals.fct_slice -> unit
end