sig
  val cast : 'Gobject.obj -> Gtk.range Gtk.obj
  module P :
    sig
      val adjustment : ([> `range ], Gtk.adjustment Gtk.obj) Gobject.property
      val inverted : ([> `range ], bool) Gobject.property
      val update_policy :
        ([> `range ], GtkEnums.update_type) Gobject.property
    end
  module S :
    sig
      val adjust_bounds : ([> `range ], float -> unit) GtkSignal.t
      val move_slider :
        ([> `range ], GtkEnums.scroll_type -> unit) GtkSignal.t
      val value_changed : ([> `range ], unit -> unit) GtkSignal.t
    end
  val make_params :
    cont:(([> `range ] as 'a) Gobject.param list -> 'b) ->
    'Gobject.param list ->
    ?adjustment:Gtk.adjustment Gtk.obj ->
    ?inverted:bool -> ?update_policy:GtkEnums.update_type -> 'b
end