sig
  type t = SlicingTypes.sl_select
  val dyn_t : Db.Slicing.Select.t Type.t
  type t_set = SlicingTypes.Fct_user_crit.t SlicingTypes.Sl_selects.t
  val dyn_t_set : Db.Slicing.Select.t_set Type.t
  val empty_selects : Db.Slicing.Select.t_set
  val select_stmt :
    (Db.Slicing.Select.t_set ->
     spare:bool ->
     Cil_types.stmt -> Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val select_stmt_ctrl :
    (Db.Slicing.Select.t_set ->
     spare:bool ->
     Cil_types.stmt -> Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val select_stmt_lval_rw :
    (Db.Slicing.Select.t_set ->
     Db.Slicing.Mark.t ->
     rd:Datatype.String.Set.t ->
     wr:Datatype.String.Set.t ->
     Cil_types.stmt ->
     scope:Cil_types.stmt ->
     eval:Cil_types.stmt ->
     Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val select_stmt_lval :
    (Db.Slicing.Select.t_set ->
     Db.Slicing.Mark.t ->
     Datatype.String.Set.t ->
     before:bool ->
     Cil_types.stmt ->
     scope:Cil_types.stmt ->
     eval:Cil_types.stmt ->
     Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val select_stmt_zone :
    (Db.Slicing.Select.t_set ->
     Db.Slicing.Mark.t ->
     Locations.Zone.t ->
     before:bool ->
     Cil_types.stmt -> Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val select_stmt_term :
    (Db.Slicing.Select.t_set ->
     Db.Slicing.Mark.t ->
     Cil_types.term ->
     before:bool ->
     Cil_types.stmt -> Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val select_stmt_pred :
    (Db.Slicing.Select.t_set ->
     Db.Slicing.Mark.t ->
     Cil_types.predicate Cil_types.named ->
     before:bool ->
     Cil_types.stmt -> Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val select_stmt_annot :
    (Db.Slicing.Select.t_set ->
     Db.Slicing.Mark.t ->
     spare:bool ->
     Cil_types.code_annotation ->
     before:bool ->
     Cil_types.stmt -> Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val select_stmt_annots :
    (Db.Slicing.Select.t_set ->
     Db.Slicing.Mark.t ->
     spare:bool ->
     ai:bool ->
     user_assert:bool ->
     slicing_pragma:bool ->
     loop_inv:bool ->
     loop_var:bool ->
     Cil_types.stmt -> Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val select_func_lval_rw :
    (Db.Slicing.Select.t_set ->
     Db.Slicing.Mark.t ->
     rd:Datatype.String.Set.t ->
     wr:Datatype.String.Set.t ->
     scope:Cil_types.stmt ->
     eval:Cil_types.stmt ->
     Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val select_func_lval :
    (Db.Slicing.Select.t_set ->
     Db.Slicing.Mark.t ->
     Datatype.String.Set.t ->
     Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val select_func_zone :
    (Db.Slicing.Select.t_set ->
     Db.Slicing.Mark.t ->
     Locations.Zone.t -> Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val select_func_return :
    (Db.Slicing.Select.t_set ->
     spare:bool -> Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val select_func_calls_to :
    (Db.Slicing.Select.t_set ->
     spare:bool -> Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val select_func_calls_into :
    (Db.Slicing.Select.t_set ->
     spare:bool -> Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val select_func_annots :
    (Db.Slicing.Select.t_set ->
     Db.Slicing.Mark.t ->
     spare:bool ->
     ai:bool ->
     user_assert:bool ->
     slicing_pragma:bool ->
     loop_inv:bool ->
     loop_var:bool -> Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val pretty :
    (Format.formatter -> Db.Slicing.Select.t -> unit) Pervasives.ref
  val get_function :
    (Db.Slicing.Select.t -> Db_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.t_set -> Db.Slicing.Select.t_set)
    Pervasives.ref
  val iter_selects_internal :
    ((Db.Slicing.Select.t -> unit) -> Db.Slicing.Select.t_set -> unit)
    Pervasives.ref
  val fold_selects_internal :
    ('-> Db.Slicing.Select.t -> 'a) -> '-> Db.Slicing.Select.t_set -> 'a
  val select_stmt_internal :
    (Db_types.kernel_function ->
     ?select:Db.Slicing.Select.t ->
     Cil_types.stmt -> Db.Slicing.Mark.t -> Db.Slicing.Select.t)
    Pervasives.ref
  val select_min_call_internal :
    (Db_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 :
    (Db_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 :
    (Db_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 :
    (Db_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 :
    (Db_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 :
    (Db_types.kernel_function ->
     ?select:Db.Slicing.Select.t -> Cil_types.stmt -> Db.Slicing.Select.t)
    Pervasives.ref
  val select_pdg_nodes_internal :
    (Db_types.kernel_function ->
     ?select:Db.Slicing.Select.t ->
     Db.Pdg.t_node list -> Db.Slicing.Mark.t -> Db.Slicing.Select.t)
    Pervasives.ref
  val select_entry_point_internal :
    (Db_types.kernel_function ->
     ?select:Db.Slicing.Select.t -> Db.Slicing.Mark.t -> Db.Slicing.Select.t)
    Pervasives.ref
  val select_return_internal :
    (Db_types.kernel_function ->
     ?select:Db.Slicing.Select.t -> Db.Slicing.Mark.t -> Db.Slicing.Select.t)
    Pervasives.ref
  val select_decl_var_internal :
    (Db_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.t_set ->
     Db.Slicing.Mark.t ->
     Db.Pdg.t_node list ->
     Db_types.kernel_function -> Db.Slicing.Select.t_set)
    Pervasives.ref
end