sig
  val cast : 'Gobject.obj -> Gtk.tree_selection
  module S :
    sig val changed : ([> `treeselection ], unit -> unit) GtkSignal.t end
  external set_mode : Gtk.tree_selection -> Gtk.Tags.selection_mode -> unit
    = "ml_gtk_tree_selection_set_mode"
  external get_mode : Gtk.tree_selection -> Gtk.Tags.selection_mode
    = "ml_gtk_tree_selection_get_mode"
  external set_select_function :
    Gtk.tree_selection -> (Gtk.tree_path -> bool -> bool) -> unit
    = "ml_gtk_tree_selection_set_select_function"
  external selected_foreach :
    Gtk.tree_selection -> (Gtk.tree_path -> unit) -> unit
    = "ml_gtk_tree_selection_selected_foreach"
  val get_selected_rows : Gtk.tree_selection -> Gtk.tree_path list
  external count_selected_rows : Gtk.tree_selection -> int
    = "ml_gtk_tree_selection_count_selected_rows"
  external select_path : Gtk.tree_selection -> Gtk.tree_path -> unit
    = "ml_gtk_tree_selection_select_path"
  external path_is_selected : Gtk.tree_selection -> Gtk.tree_path -> bool
    = "ml_gtk_tree_selection_path_is_selected"
  external unselect_path : Gtk.tree_selection -> Gtk.tree_path -> unit
    = "ml_gtk_tree_selection_unselect_path"
  external select_iter : Gtk.tree_selection -> Gtk.tree_iter -> unit
    = "ml_gtk_tree_selection_select_iter"
  external unselect_iter : Gtk.tree_selection -> Gtk.tree_iter -> unit
    = "ml_gtk_tree_selection_unselect_iter"
  external iter_is_selected : Gtk.tree_selection -> Gtk.tree_iter -> bool
    = "ml_gtk_tree_selection_iter_is_selected"
  external select_all : Gtk.tree_selection -> unit
    = "ml_gtk_tree_selection_select_all"
  external unselect_all : Gtk.tree_selection -> unit
    = "ml_gtk_tree_selection_unselect_all"
  external select_range :
    Gtk.tree_selection -> Gtk.tree_path -> Gtk.tree_path -> unit
    = "ml_gtk_tree_selection_select_range"
  external unselect_range :
    Gtk.tree_selection -> Gtk.tree_path -> Gtk.tree_path -> unit
    = "ml_gtk_tree_selection_unselect_range"
end