sig
  type 'a t = 'React.event
  val never : 'React.event
  val create : unit -> 'React.event * ('-> unit)
  val retain : 'React.event -> (unit -> unit) -> [ `R of unit -> unit ]
  val stop : 'React.event -> unit
  val equal : 'React.event -> 'React.event -> bool
  val trace :
    ?iff:bool React.signal ->
    ('-> unit) -> 'React.event -> 'React.event
  val once : 'React.event -> 'React.event
  val drop_once : 'React.event -> 'React.event
  val app : ('-> 'b) React.event -> 'React.event -> 'React.event
  val map : ('-> 'b) -> 'React.event -> 'React.event
  val stamp : 'React.event -> '-> 'React.event
  val filter : ('-> bool) -> 'React.event -> 'React.event
  val fmap : ('-> 'b option) -> 'React.event -> 'React.event
  val diff : ('-> '-> 'b) -> 'React.event -> 'React.event
  val changes : ?eq:('-> '-> bool) -> 'React.event -> 'React.event
  val when_ : bool React.signal -> 'React.event -> 'React.event
  val dismiss : 'React.event -> 'React.event -> 'React.event
  val until : 'React.event -> 'React.event -> 'React.event
  val accum : ('-> 'a) React.event -> '-> 'React.event
  val fold : ('-> '-> 'a) -> '-> 'React.event -> 'React.event
  val select : 'React.event list -> 'React.event
  val merge : ('-> '-> 'a) -> '-> 'React.event list -> 'React.event
  val switch : 'React.event -> 'React.event React.event -> 'React.event
  val fix : ('React.event -> 'React.event * 'b) -> 'b
end