sig
  type id
  type 'a marshaller = 'a -> Gobject.Closure.argv -> unit
  type ('a, 'b) t = {
    name : string;
    classe : 'a;
    marshaller : 'b GtkSignal.marshaller;
  }
  type query = {
    id : int;
    signal_name : string;
    itype : string;
    flags : int;
    return : string;
    params : string array;
  }
  val stop_emit : unit -> unit
  val connect :
    sgn:('a, 'b) GtkSignal.t ->
    callback:'b -> ?after:bool -> 'a Gobject.obj -> GtkSignal.id
  val connect_property :
    prop:('a, 'b) Gobject.property ->
    callback:('b -> unit) -> 'a Gobject.obj -> GtkSignal.id
  val user_handler : (exn -> unit) Stdlib.ref
  val safe_call : ?where:string -> ('a -> unit) -> 'a -> unit
  external signal_new :
    string -> Gobject.g_type -> Gobject.signal_type list -> unit
    = "ml_g_signal_new_me"
  external list_ids : Gobject.g_type -> int array = "ml_g_signal_list_ids"
  external query : int -> GtkSignal.query = "ml_g_signal_query"
  external connect_by_name :
    'a Gobject.obj ->
    name:string -> callback:Gobject.g_closure -> after:bool -> GtkSignal.id
    = "ml_g_signal_connect_closure"
  external disconnect : 'a Gobject.obj -> GtkSignal.id -> unit
    = "ml_g_signal_handler_disconnect"
  external emit_stop_by_name : 'a Gobject.obj -> name:string -> unit
    = "ml_g_signal_stop_emission_by_name"
  external handler_block : 'a Gobject.obj -> GtkSignal.id -> unit
    = "ml_g_signal_handler_block"
  external handler_unblock : 'a Gobject.obj -> GtkSignal.id -> unit
    = "ml_g_signal_handler_unblock"
  val marshal_unit : (unit -> unit) GtkSignal.marshaller
  val marshal_int : (int -> unit) GtkSignal.marshaller
  val marshal_string : (string -> unit) GtkSignal.marshaller
  val marshal1 :
    'a Gobject.data_conv -> string -> ('a -> unit) GtkSignal.marshaller
  val marshal2 :
    'a Gobject.data_conv ->
    'b Gobject.data_conv -> string -> ('a -> 'b -> unit) GtkSignal.marshaller
  val marshal3 :
    'a Gobject.data_conv ->
    'b Gobject.data_conv ->
    'c Gobject.data_conv ->
    string -> ('a -> 'b -> 'c -> unit) GtkSignal.marshaller
  val marshal4 :
    'a Gobject.data_conv ->
    'b Gobject.data_conv ->
    'c Gobject.data_conv ->
    'd Gobject.data_conv ->
    string -> ('a -> 'b -> 'c -> 'd -> unit) GtkSignal.marshaller
  val marshal5 :
    'a Gobject.data_conv ->
    'b Gobject.data_conv ->
    'c Gobject.data_conv ->
    'd Gobject.data_conv ->
    'e Gobject.data_conv ->
    string -> ('a -> 'b -> 'c -> 'd -> 'e -> unit) GtkSignal.marshaller
  val marshal6 :
    'a Gobject.data_conv ->
    'b Gobject.data_conv ->
    'c Gobject.data_conv ->
    'd Gobject.data_conv ->
    'e Gobject.data_conv ->
    'f Gobject.data_conv ->
    string -> ('a -> 'b -> 'c -> 'd -> 'e -> 'f -> unit) GtkSignal.marshaller
  val marshal0_ret :
    ret:'a Gobject.data_conv -> (unit -> 'a) GtkSignal.marshaller
  val marshal1_ret :
    ret:'a Gobject.data_conv ->
    'b Gobject.data_conv -> string -> ('b -> 'a) GtkSignal.marshaller
  val marshal2_ret :
    ret:'a Gobject.data_conv ->
    'b Gobject.data_conv ->
    'c Gobject.data_conv -> string -> ('b -> 'c -> 'a) GtkSignal.marshaller
  val marshal3_ret :
    ret:'a Gobject.data_conv ->
    'b Gobject.data_conv ->
    'c Gobject.data_conv ->
    'd Gobject.data_conv ->
    string -> ('b -> 'c -> 'd -> 'a) GtkSignal.marshaller
  val marshal4_ret :
    ret:'a Gobject.data_conv ->
    'b Gobject.data_conv ->
    'c Gobject.data_conv ->
    'd Gobject.data_conv ->
    'e Gobject.data_conv ->
    string -> ('b -> 'c -> 'd -> 'e -> 'a) GtkSignal.marshaller
  val emit :
    'a Gobject.obj ->
    sgn:('a, 'b) GtkSignal.t ->
    emitter:(cont:('c Gobject.data_set array -> 'd) -> 'b) ->
    conv:(Gobject.g_value -> 'd) -> 'b
  val emit_unit :
    'a Gobject.obj -> sgn:('a, unit -> unit) GtkSignal.t -> unit
  val emit_int :
    'a Gobject.obj -> sgn:('a, int -> unit) GtkSignal.t -> int -> unit
  val override_class_closure :
    ('a, 'b) GtkSignal.t -> Gobject.g_type -> Gobject.g_closure -> unit
  external chain_from_overridden : Gobject.Closure.argv -> unit
    = "ml_g_signal_chain_from_overridden"
  val enter_callback : (unit -> unit) Stdlib.ref
  val exit_callback : (unit -> unit) Stdlib.ref
  type saved_state
  val push_callback : unit -> GtkSignal.saved_state
  val pop_callback : GtkSignal.saved_state -> bool
end