sig
  val cast : 'Gobject.obj -> Gtk.container Gtk.obj
  module P :
    sig
      val border_width : ([> `container ], int) Gobject.property
      val child : ([> `container ], Gtk.widget Gtk.obj) Gobject.property
      val resize_mode :
        ([> `container ], GtkEnums.resize_mode) Gobject.property
    end
  module S :
    sig
      val add : ([> `container ], Gtk.widget Gtk.obj -> unit) GtkSignal.t
      val remove : ([> `container ], Gtk.widget Gtk.obj -> unit) GtkSignal.t
      val check_resize : ([> `container ], unit -> unit) GtkSignal.t
      val set_focus :
        ([> `container ], Gtk.widget Gtk.obj option -> unit) GtkSignal.t
    end
  external check_resize : [> `container ] Gtk.obj -> unit
    = "ml_gtk_container_check_resize"
  external add : [> `container ] Gtk.obj -> [> `widget ] Gtk.obj -> unit
    = "ml_gtk_container_add"
  external remove : [> `container ] Gtk.obj -> [> `widget ] Gtk.obj -> unit
    = "ml_gtk_container_remove"
  external forall :
    [> `container ] Gtk.obj -> f:(Gtk.widget Gtk.obj -> unit) -> unit
    = "ml_gtk_container_forall"
  external foreach :
    [> `container ] Gtk.obj -> f:(Gtk.widget Gtk.obj -> unit) -> unit
    = "ml_gtk_container_foreach"
  external set_focus_child :
    [> `container ] Gtk.obj -> [> `widget ] Gtk.optobj -> unit
    = "ml_gtk_container_set_focus_child"
  external set_focus_vadjustment :
    [> `container ] Gtk.obj -> [> `adjustment ] Gtk.optobj -> unit
    = "ml_gtk_container_set_focus_vadjustment"
  external set_focus_hadjustment :
    [> `container ] Gtk.obj -> [> `adjustment ] Gtk.optobj -> unit
    = "ml_gtk_container_set_focus_hadjustment"
  external child_set_property :
    [> `container ] Gtk.obj ->
    [> `widget ] Gtk.obj -> string -> Gobject.g_value -> unit
    = "ml_gtk_container_child_set_property"
  external child_get_property :
    [> `container ] Gtk.obj ->
    [> `widget ] Gtk.obj -> string -> Gobject.g_value -> unit
    = "ml_gtk_container_child_get_property"
end