sig
  type 'a t
  type 'a v = (Evas.obj -> '-> unit) Evas.Signal.t
  type 'a r = (Evas.obj -> 'a) Evas.Signal.t
  type u = (Evas.obj -> unit) Evas.Signal.t
  val create : string -> (Evas.ptr -> 'a) -> 'Evas.Signal.v
  val create_unit : string -> Evas.Signal.u
  val create_ref : string -> (Evas.ptr -> '-> unit) -> 'Evas.Signal.r
  val get_name : 'Evas.Signal.t -> string
  val get_cb : 'Evas.Signal.t -> '-> Evas.smart_cb
end