sig
  type box
  type expand = W | H | V | HV
  val box :
    ?expand:Wbox.expand ->
    ?padding:int -> ?widget:#Widget.widget -> unit -> Wbox.box
  val g : ?expand:Wbox.expand -> ?padding:int -> #GObj.widget -> Wbox.box
  val w : ?expand:Wbox.expand -> ?padding:int -> #Widget.widget -> Wbox.box
  val h : ?padding:int -> #Widget.widget -> Wbox.box
  val v : ?padding:int -> #Widget.widget -> Wbox.box
  val hv : ?padding:int -> #Widget.widget -> Wbox.box
  val label :
    ?fill:bool ->
    ?style:Widget.style ->
    ?align:Widget.align -> ?padding:int -> string -> Wbox.box
  val hbox : Wbox.box list -> Widget.widget
  val vbox : Wbox.box list -> Widget.widget
  val hgroup : Widget.widget list -> Widget.widget
  val vgroup : Widget.widget list -> Widget.widget
  val toolbar : Wbox.box list -> Wbox.box list -> Widget.widget
  val sidebar : Wbox.box list -> Wbox.box list -> Widget.widget
  val panel :
    ?top:Widget.widget ->
    ?left:Widget.widget ->
    ?right:Widget.widget ->
    ?bottom:Widget.widget -> #Widget.widget -> Widget.widget
  class type splitter =
    object
      method coerce : GObj.widget
      method connect : (float -> unit) -> unit
      method get : float
      method set : float -> unit
      method set_enabled : bool -> unit
      method set_visible : bool -> unit
      method widget : Wutil.widget
    end
  val split :
    dir:[ `HORIZONTAL | `VERTICAL ] ->
    Widget.widget -> Widget.widget -> Wbox.splitter
  val scroll :
    ?hpolicy:[ `ALWAYS | `AUTOMATIC | `NEVER ] ->
    ?vpolicy:[ `ALWAYS | `AUTOMATIC | `NEVER ] ->
    Widget.widget -> Widget.widget
  val hscroll : Widget.widget -> Widget.widget
  val vscroll : Widget.widget -> Widget.widget
end