sig
  type 'a widget = 'Rawwidget.raw_widget
  type any = Rawwidget.raw_any
  and button
  and canvas
  and checkbutton
  and entry
  and frame
  and label
  and listbox
  and menu
  and menubutton
  and message
  and radiobutton
  and scale
  and scrollbar
  and text
  and toplevel
  and ttk_labelframe
  val forget_type : 'Widget.widget -> Widget.any Widget.widget
  val coe : 'Widget.widget -> Widget.any Widget.widget
  val default_toplevel : Widget.toplevel Widget.widget
  val atom :
    parent:'Widget.widget -> name:string -> Widget.any Widget.widget
  val name : 'Widget.widget -> string
  val known_class : 'Widget.widget -> string
  val dummy : Widget.any Widget.widget
  val new_atom :
    parent:'Widget.widget -> ?name:string -> string -> 'Widget.widget
  val get_atom : string -> Widget.any Widget.widget
  val remove : 'Widget.widget -> unit
  val widget_any_table : string list
  val widget_button_table : string list
  val widget_canvas_table : string list
  val widget_checkbutton_table : string list
  val widget_entry_table : string list
  val widget_frame_table : string list
  val widget_label_table : string list
  val widget_listbox_table : string list
  val widget_menu_table : string list
  val widget_menubutton_table : string list
  val widget_message_table : string list
  val widget_radiobutton_table : string list
  val widget_scale_table : string list
  val widget_scrollbar_table : string list
  val widget_text_table : string list
  val widget_toplevel_table : string list
  val widget_ttk_labelframe_table : string list
  val chk_sub : string -> 'a list -> '-> unit
  val check_class : 'Widget.widget -> string list -> unit
  exception IllegalWidgetType of string
end