sig
  val cast : 'Gobject.obj -> Gtk.ruler Gtk.obj
  module P :
    sig
      val lower : ([> `ruler ], float) Gobject.property
      val upper : ([> `ruler ], float) Gobject.property
      val max_size : ([> `ruler ], float) Gobject.property
      val position : ([> `ruler ], float) Gobject.property
    end
  val create :
    Gtk.Tags.orientation -> Gtk.ruler Gobject.param list -> Gtk.ruler Gtk.obj
  external set_metric : [> `ruler ] Gtk.obj -> Gtk.Tags.metric_type -> unit
    = "ml_gtk_ruler_set_metric"
  val make_params :
    cont:(([> `ruler ] as 'a) Gobject.param list -> 'b) ->
    'Gobject.param list ->
    ?lower:float -> ?upper:float -> ?max_size:float -> ?position:float -> 'b
end