# Module GtkTree.TreeModel

    module TreeModel: sig .. end

    val cast : 'a Gobject.obj -> Gtk.tree_model

    val get_flags : [> `treemodel ] Gtk.obj -> GtkEnums.tree_model_flags list

    val get_n_columns : [> `treemodel ] Gtk.obj -> int

    val get_column_type : [> `treemodel ] Gtk.obj -> int -> Gobject.g_type

    val alloc_iter : unit -> Gtk.tree_iter

    val copy_iter : Gtk.tree_iter -> Gtk.tree_iter

    val get_iter : [> `treemodel ] Gtk.obj -> Gtk.tree_iter -> Gtk.tree_path -> bool

    val get_iter : [> `treemodel ] Gtk.obj -> Gtk.tree_path -> Gtk.tree_iter

    val get_path : [> `treemodel ] Gtk.obj -> Gtk.tree_iter -> Gtk.tree_path

    val get_value : [> `treemodel ] Gtk.obj ->
           row:Gtk.tree_iter -> column:int -> Gobject.g_value -> unit

    val _get_iter_first : [> `treemodel ] Gtk.obj -> Gtk.tree_iter -> bool

    val get_iter_first : [> `treemodel ] Gtk.obj -> Gtk.tree_iter option

    val iter_next : [> `treemodel ] Gtk.obj -> Gtk.tree_iter -> bool

    val iter_has_child : [> `treemodel ] Gtk.obj -> Gtk.tree_iter -> bool

    val iter_n_children : [> `treemodel ] Gtk.obj -> Gtk.tree_iter option -> int

    val iter_nth_child : [> `treemodel ] Gtk.obj ->
           Gtk.tree_iter -> parent:Gtk.tree_iter option -> int -> bool

    val iter_children : [> `treemodel ] Gtk.obj -> ?nth:int -> Gtk.tree_iter option -> Gtk.tree_iter

    val iter_parent : [> `treemodel ] Gtk.obj -> Gtk.tree_iter -> child:Gtk.tree_iter -> bool

    val iter_parent : [> `treemodel ] Gtk.obj -> Gtk.tree_iter -> Gtk.tree_iter option

    val foreach : [> `treemodel ] Gtk.obj -> (Gtk.tree_path -> Gtk.tree_iter -> bool) -> unit

    val row_changed : [> `treemodel ] Gtk.obj -> Gtk.tree_path -> Gtk.tree_iter -> unit