sig
  val cast : 'Gobject.obj -> Gtk.tree_model Gtk.obj
  external get_flags :
    [> `treemodel ] Gtk.obj -> GtkEnums.tree_model_flags list
    = "ml_gtk_tree_model_get_flags"
  external get_n_columns : [> `treemodel ] Gtk.obj -> int
    = "ml_gtk_tree_model_get_n_columns"
  external get_column_type : [> `treemodel ] Gtk.obj -> int -> Gobject.g_type
    = "ml_gtk_tree_model_get_column_type"
  external alloc_iter : unit -> Gtk.tree_iter = "ml_alloc_GtkTreeIter"
  external copy_iter : Gtk.tree_iter -> Gtk.tree_iter
    = "ml_gtk_tree_iter_copy"
  external get_iter :
    [> `treemodel ] Gtk.obj -> Gtk.tree_iter -> Gtk.tree_path -> bool
    = "ml_gtk_tree_model_get_iter"
  val get_iter : [> `treemodel ] Gtk.obj -> Gtk.tree_path -> Gtk.tree_iter
  external get_path :
    [> `treemodel ] Gtk.obj -> Gtk.tree_iter -> Gtk.tree_path
    = "ml_gtk_tree_model_get_path"
  external get_value :
    [> `treemodel ] Gtk.obj ->
    row:Gtk.tree_iter -> column:int -> Gobject.g_value -> unit
    = "ml_gtk_tree_model_get_value"
  external _get_iter_first : [> `treemodel ] Gtk.obj -> Gtk.tree_iter -> bool
    = "ml_gtk_tree_model_get_iter_first"
  val get_iter_first : [> `treemodel ] Gtk.obj -> Gtk.tree_iter option
  external iter_next : [> `treemodel ] Gtk.obj -> Gtk.tree_iter -> bool
    = "ml_gtk_tree_model_iter_next"
  external iter_has_child : [> `treemodel ] Gtk.obj -> Gtk.tree_iter -> bool
    = "ml_gtk_tree_model_iter_has_child"
  external iter_n_children :
    [> `treemodel ] Gtk.obj -> Gtk.tree_iter option -> int
    = "ml_gtk_tree_model_iter_n_children"
  external iter_nth_child :
    [> `treemodel ] Gtk.obj ->
    Gtk.tree_iter -> parent:Gtk.tree_iter option -> int -> bool
    = "ml_gtk_tree_model_iter_nth_child"
  val iter_children :
    [> `treemodel ] Gtk.obj ->
    ?nth:int -> Gtk.tree_iter option -> Gtk.tree_iter
  external iter_parent :
    [> `treemodel ] Gtk.obj -> Gtk.tree_iter -> child:Gtk.tree_iter -> bool
    = "ml_gtk_tree_model_iter_parent"
  val iter_parent :
    [> `treemodel ] Gtk.obj -> Gtk.tree_iter -> Gtk.tree_iter option
  external foreach :
    [> `treemodel ] Gtk.obj ->
    (Gtk.tree_path -> Gtk.tree_iter -> bool) -> unit
    = "ml_gtk_tree_model_foreach"
  external row_changed :
    [> `treemodel ] Gtk.obj -> Gtk.tree_path -> Gtk.tree_iter -> unit
    = "ml_gtk_tree_model_row_changed"
end