sig
  val cast : 'Gobject.obj -> Gtk.range Gtk.obj
  module P :
    sig
      val adjustment : ([> `range ], Gtk.adjustment Gtk.obj) Gobject.property
      val fill_level : ([> `range ], float) Gobject.property
      val inverted : ([> `range ], bool) Gobject.property
      val restrict_to_fill_level : ([> `range ], bool) Gobject.property
      val round_digits : ([> `range ], int) Gobject.property
      val show_fill_level : ([> `range ], bool) Gobject.property
      val lower_stepper_sensitivity :
        ([> `range ], GtkEnums.sensitivity_type) Gobject.property
      val upper_stepper_sensitivity :
        ([> `range ], GtkEnums.sensitivity_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 change_value :
        ([> `range ], GtkEnums.scroll_type -> float -> 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 ->
    ?fill_level:float ->
    ?inverted:bool ->
    ?restrict_to_fill_level:bool ->
    ?round_digits:int ->
    ?show_fill_level:bool ->
    ?lower_stepper_sensitivity:GtkEnums.sensitivity_type ->
    ?upper_stepper_sensitivity:GtkEnums.sensitivity_type -> 'b
end