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