sig
  type id
  type 'a marshaller = '-> Gobject.Closure.argv -> unit
  type ('a, 'b) t = {
    name : string;
    classe : 'a;
    marshaller : 'GtkSignal.marshaller;
  }
  val stop_emit : unit -> unit
  val connect :
    sgn:('a, 'b) GtkSignal.t ->
    callback:'-> ?after:bool -> 'Gobject.obj -> GtkSignal.id
  val user_handler : (exn -> unit) Pervasives.ref
  external connect_by_name :
    'Gobject.obj ->
    name:string -> callback:Gobject.g_closure -> after:bool -> GtkSignal.id
    = "ml_g_signal_connect_closure"
  external disconnect : 'Gobject.obj -> GtkSignal.id -> unit
    = "ml_g_signal_handler_disconnect"
  external emit_stop_by_name : 'Gobject.obj -> name:string -> unit
    = "ml_g_signal_stop_emission_by_name"
  external handler_block : 'Gobject.obj -> GtkSignal.id -> unit
    = "ml_g_signal_handler_block"
  external handler_unblock : '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 :
    'Gobject.data_conv -> string -> ('-> unit) GtkSignal.marshaller
  val marshal2 :
    'Gobject.data_conv ->
    'Gobject.data_conv -> string -> ('-> '-> unit) GtkSignal.marshaller
  val marshal3 :
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    string -> ('-> '-> '-> unit) GtkSignal.marshaller
  val marshal4 :
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    string -> ('-> '-> '-> '-> unit) GtkSignal.marshaller
  val marshal5 :
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    string -> ('-> '-> '-> '-> '-> unit) GtkSignal.marshaller
  val marshal6 :
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    string -> ('-> '-> '-> '-> '-> '-> unit) GtkSignal.marshaller
  val marshal0_ret :
    ret:'Gobject.data_conv -> (unit -> 'a) GtkSignal.marshaller
  val marshal1_ret :
    ret:'Gobject.data_conv ->
    'Gobject.data_conv -> string -> ('-> 'a) GtkSignal.marshaller
  val marshal2_ret :
    ret:'Gobject.data_conv ->
    'Gobject.data_conv ->
    'Gobject.data_conv -> string -> ('-> '-> 'a) GtkSignal.marshaller
  val marshal3_ret :
    ret:'Gobject.data_conv ->
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    string -> ('-> '-> '-> 'a) GtkSignal.marshaller
  val marshal4_ret :
    ret:'Gobject.data_conv ->
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    'Gobject.data_conv ->
    string -> ('-> '-> '-> '-> 'a) GtkSignal.marshaller
  val emit :
    'Gobject.obj ->
    sgn:('a, 'b) GtkSignal.t ->
    emitter:(cont:('Gobject.data_set array -> 'd) -> 'b) ->
    conv:(Gobject.g_value -> 'd) -> 'b
  val emit_unit :
    'Gobject.obj -> sgn:('a, unit -> unit) GtkSignal.t -> unit
  val emit_int :
    '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) Pervasives.ref
  val exit_callback : (unit -> unit) Pervasives.ref
  type saved_state
  val push_callback : unit -> GtkSignal.saved_state
  val pop_callback : GtkSignal.saved_state -> bool
end