sig
  type t
  val dyn_t : Slicing.Api.Select.t Type.t
  type set
  val dyn_set : Slicing.Api.Select.set Type.t
  val empty_selects : Slicing.Api.Select.set
  val select_stmt :
    Slicing.Api.Select.set ->
    spare:bool ->
    Cil_types.stmt -> Cil_types.kernel_function -> Slicing.Api.Select.set
  val select_stmt_ctrl :
    Slicing.Api.Select.set ->
    spare:bool ->
    Cil_types.stmt -> Cil_types.kernel_function -> Slicing.Api.Select.set
  val select_stmt_lval_rw :
    Slicing.Api.Select.set ->
    Slicing.Api.Mark.t ->
    rd:Datatype.String.Set.t ->
    wr:Datatype.String.Set.t ->
    Cil_types.stmt ->
    eval:Cil_types.stmt ->
    Cil_types.kernel_function -> Slicing.Api.Select.set
  val select_stmt_lval :
    Slicing.Api.Select.set ->
    Slicing.Api.Mark.t ->
    Datatype.String.Set.t ->
    before:bool ->
    Cil_types.stmt ->
    eval:Cil_types.stmt ->
    Cil_types.kernel_function -> Slicing.Api.Select.set
  val select_stmt_annots :
    Slicing.Api.Select.set ->
    Slicing.Api.Mark.t ->
    spare:bool ->
    threat:bool ->
    user_assert:bool ->
    slicing_pragma:bool ->
    loop_inv:bool ->
    loop_var:bool ->
    Cil_types.stmt -> Cil_types.kernel_function -> Slicing.Api.Select.set
  val select_func_lval_rw :
    Slicing.Api.Select.set ->
    Slicing.Api.Mark.t ->
    rd:Datatype.String.Set.t ->
    wr:Datatype.String.Set.t ->
    eval:Cil_types.stmt ->
    Cil_types.kernel_function -> Slicing.Api.Select.set
  val select_func_lval :
    Slicing.Api.Select.set ->
    Slicing.Api.Mark.t ->
    Datatype.String.Set.t ->
    Cil_types.kernel_function -> Slicing.Api.Select.set
  val select_func_return :
    Slicing.Api.Select.set ->
    spare:bool -> Cil_types.kernel_function -> Slicing.Api.Select.set
  val select_func_calls_to :
    Slicing.Api.Select.set ->
    spare:bool -> Cil_types.kernel_function -> Slicing.Api.Select.set
  val select_func_calls_into :
    Slicing.Api.Select.set ->
    spare:bool -> Cil_types.kernel_function -> Slicing.Api.Select.set
  val select_func_annots :
    Slicing.Api.Select.set ->
    Slicing.Api.Mark.t ->
    spare:bool ->
    threat:bool ->
    user_assert:bool ->
    slicing_pragma:bool ->
    loop_inv:bool ->
    loop_var:bool -> Cil_types.kernel_function -> Slicing.Api.Select.set
  val select_func_zone :
    Slicing.Api.Select.set ->
    Slicing.Api.Mark.t ->
    Locations.Zone.t -> Cil_types.kernel_function -> Slicing.Api.Select.set
  val select_stmt_zone :
    Slicing.Api.Select.set ->
    Slicing.Api.Mark.t ->
    Locations.Zone.t ->
    before:bool ->
    Cil_types.stmt -> Cil_types.kernel_function -> Slicing.Api.Select.set
  val select_stmt_term :
    Slicing.Api.Select.set ->
    Slicing.Api.Mark.t ->
    Cil_types.term ->
    Cil_types.stmt -> Cil_types.kernel_function -> Slicing.Api.Select.set
  val select_stmt_pred :
    Slicing.Api.Select.set ->
    Slicing.Api.Mark.t ->
    Cil_types.predicate ->
    Cil_types.stmt -> Cil_types.kernel_function -> Slicing.Api.Select.set
  val select_stmt_annot :
    Slicing.Api.Select.set ->
    Slicing.Api.Mark.t ->
    spare:bool ->
    Cil_types.code_annotation ->
    Cil_types.stmt -> Cil_types.kernel_function -> Slicing.Api.Select.set
  val select_pdg_nodes :
    Slicing.Api.Select.set ->
    Slicing.Api.Mark.t ->
    PdgTypes.Node.t list ->
    Cil_types.kernel_function -> Slicing.Api.Select.set
  val get_function : Slicing.Api.Select.t -> Cil_types.kernel_function
  val merge_internal :
    Slicing.Api.Select.t -> Slicing.Api.Select.t -> Slicing.Api.Select.t
  val add_to_selects_internal :
    Slicing.Api.Select.t -> Slicing.Api.Select.set -> Slicing.Api.Select.set
  val iter_selects_internal :
    (Slicing.Api.Select.t -> unit) -> Slicing.Api.Select.set -> unit
  val fold_selects_internal :
    ('-> Slicing.Api.Select.t -> 'a) -> '-> Slicing.Api.Select.set -> 'a
  val select_stmt_internal :
    Cil_types.kernel_function ->
    ?select:Slicing.Api.Select.t ->
    Cil_types.stmt -> Slicing.Api.Mark.t -> Slicing.Api.Select.t
  val select_label_internal :
    Cil_types.kernel_function ->
    ?select:Slicing.Api.Select.t ->
    Cil_datatype.Logic_label.t -> Slicing.Api.Mark.t -> Slicing.Api.Select.t
  val select_min_call_internal :
    Cil_types.kernel_function ->
    ?select:Slicing.Api.Select.t ->
    Cil_types.stmt -> Slicing.Api.Mark.t -> Slicing.Api.Select.t
  val select_stmt_zone_internal :
    Cil_types.kernel_function ->
    ?select:Slicing.Api.Select.t ->
    Cil_types.stmt ->
    before:bool ->
    Locations.Zone.t -> Slicing.Api.Mark.t -> Slicing.Api.Select.t
  val select_zone_at_entry_point_internal :
    Cil_types.kernel_function ->
    ?select:Slicing.Api.Select.t ->
    Locations.Zone.t -> Slicing.Api.Mark.t -> Slicing.Api.Select.t
  val select_zone_at_end_internal :
    Cil_types.kernel_function ->
    ?select:Slicing.Api.Select.t ->
    Locations.Zone.t -> Slicing.Api.Mark.t -> Slicing.Api.Select.t
  val select_modified_output_zone_internal :
    Cil_types.kernel_function ->
    ?select:Slicing.Api.Select.t ->
    Locations.Zone.t -> Slicing.Api.Mark.t -> Slicing.Api.Select.t
  val select_stmt_ctrl_internal :
    Cil_types.kernel_function ->
    ?select:Slicing.Api.Select.t -> Cil_types.stmt -> Slicing.Api.Select.t
  val select_entry_point_internal :
    Cil_types.kernel_function ->
    ?select:Slicing.Api.Select.t ->
    Slicing.Api.Mark.t -> Slicing.Api.Select.t
  val select_return_internal :
    Cil_types.kernel_function ->
    ?select:Slicing.Api.Select.t ->
    Slicing.Api.Mark.t -> Slicing.Api.Select.t
  val select_decl_var_internal :
    Cil_types.kernel_function ->
    ?select:Slicing.Api.Select.t ->
    Cil_types.varinfo -> Slicing.Api.Mark.t -> Slicing.Api.Select.t
  val select_pdg_nodes_internal :
    Cil_types.kernel_function ->
    ?select:Slicing.Api.Select.t ->
    PdgTypes.Node.t list -> Slicing.Api.Mark.t -> Slicing.Api.Select.t
  val pretty : Format.formatter -> Slicing.Api.Select.t -> unit
end