sig
  val cast : 'Gobject.obj -> Gtk.tree_store
  external create : Gobject.g_type array -> Gtk.tree_store
    = "ml_gtk_tree_store_newv"
  external set_value :
    Gtk.tree_store ->
    row:Gtk.tree_iter -> column:int -> Gobject.g_value -> unit
    = "ml_gtk_tree_store_set_value"
  external remove : Gtk.tree_store -> Gtk.tree_iter -> bool
    = "ml_gtk_tree_store_remove"
  val insert :
    Gtk.tree_store -> ?parent:Gtk.tree_iter -> int -> Gtk.tree_iter
  val insert_before :
    Gtk.tree_store -> ?parent:Gtk.tree_iter -> Gtk.tree_iter -> Gtk.tree_iter
  val insert_after :
    Gtk.tree_store -> ?parent:Gtk.tree_iter -> Gtk.tree_iter -> Gtk.tree_iter
  val append :
    Gtk.tree_store -> ?parent:Gtk.tree_iter -> unit -> Gtk.tree_iter
  val prepend :
    Gtk.tree_store -> ?parent:Gtk.tree_iter -> unit -> Gtk.tree_iter
  external is_ancestor :
    Gtk.tree_store -> iter:Gtk.tree_iter -> descendant:Gtk.tree_iter -> bool
    = "ml_gtk_tree_store_is_ancestor"
  external iter_depth : Gtk.tree_store -> Gtk.tree_iter -> int
    = "ml_gtk_tree_store_iter_depth"
  external clear : Gtk.tree_store -> unit = "ml_gtk_tree_store_clear"
  external iter_is_valid : Gtk.tree_store -> Gtk.tree_iter -> bool
    = "ml_gtk_tree_store_iter_is_valid"
  external swap : Gtk.tree_store -> Gtk.tree_iter -> Gtk.tree_iter -> bool
    = "ml_gtk_tree_store_swap"
  external move_before :
    Gtk.tree_store -> iter:Gtk.tree_iter -> pos:Gtk.tree_iter -> bool
    = "ml_gtk_tree_store_move_before"
  external move_after :
    Gtk.tree_store -> iter:Gtk.tree_iter -> pos:Gtk.tree_iter -> bool
    = "ml_gtk_tree_store_move_after"
end