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