sig
  val cast : 'Gobject.obj -> Gtk.tree_sortable
  module S :
    sig
      val sort_column_changed :
        ([> `treesortable ], unit -> unit) GtkSignal.t
    end
  external sort_column_changed : [> `treesortable ] Gtk.obj -> unit
    = "ml_gtk_tree_sortable_sort_column_changed"
  external get_sort_column_id :
    [> `treesortable ] Gtk.obj -> (int * Gtk.Tags.sort_type) option
    = "ml_gtk_tree_sortable_get_sort_column_id"
  external set_sort_column_id :
    [> `treesortable ] Gtk.obj -> int -> Gtk.Tags.sort_type -> unit
    = "ml_gtk_tree_sortable_set_sort_column_id"
  external set_sort_func :
    [> `treesortable ] Gtk.obj ->
    int ->
    ([ `treemodel ] Gobject.obj -> Gtk.tree_iter -> Gtk.tree_iter -> int) ->
    unit = "ml_gtk_tree_sortable_set_sort_func"
  external set_default_sort_func :
    [> `treesortable ] Gtk.obj ->
    ([ `treemodel ] Gobject.obj -> Gtk.tree_iter -> Gtk.tree_iter -> int) ->
    unit = "ml_gtk_tree_sortable_set_default_sort_func"
  external has_default_sort_func : [> `treesortable ] Gtk.obj -> bool
    = "ml_gtk_tree_sortable_has_default_sort_func"
end