sig
  type 'a t
  type listen_id
  type 'a react
  val make : unit -> 'Ccell.Frp.FEventSig.t * ('-> unit)
  val listen :
    ('-> unit) -> 'Ccell.Frp.FEventSig.t -> Ccell.Frp.FEventSig.listen_id
  val weak_listen :
    ('-> unit) -> 'Ccell.Frp.FEventSig.t -> Ccell.Frp.FEventSig.listen_id
  val clear_listen : 'Ccell.Frp.FEventSig.t -> unit
  val remove_listen :
    'Ccell.Frp.FEventSig.t -> Ccell.Frp.FEventSig.listen_id -> unit
  val return : '-> 'Ccell.Frp.FEventSig.t
  val bind :
    'Ccell.Frp.FEventSig.t ->
    ('-> 'Ccell.Frp.FEventSig.t) -> 'Ccell.Frp.FEventSig.t
  val ( >>= ) :
    'Ccell.Frp.FEventSig.t ->
    ('-> 'Ccell.Frp.FEventSig.t) -> 'Ccell.Frp.FEventSig.t
  val join :
    'Ccell.Frp.FEventSig.t Ccell.Frp.FEventSig.t ->
    'Ccell.Frp.FEventSig.t
  val switch :
    'Ccell.Frp.FEventSig.t ->
    'Ccell.Frp.FEventSig.t Ccell.Frp.FEventSig.t ->
    'Ccell.Frp.FEventSig.t
  val never : unit -> 'Ccell.Frp.FEventSig.t
  val map :
    ('-> 'b) -> 'Ccell.Frp.FEventSig.t -> 'Ccell.Frp.FEventSig.t
  val map2 :
    ('-> '-> 'c) ->
    'Ccell.Frp.FEventSig.t ->
    'Ccell.Frp.FEventSig.t -> 'Ccell.Frp.FEventSig.t
  val app :
    ('-> 'b) Ccell.Frp.FEventSig.t ->
    'Ccell.Frp.FEventSig.t -> 'Ccell.Frp.FEventSig.t
  val merge :
    'Ccell.Frp.FEventSig.t ->
    'Ccell.Frp.FEventSig.t -> 'Ccell.Frp.FEventSig.t
  val filter :
    ('-> bool) -> 'Ccell.Frp.FEventSig.t -> 'Ccell.Frp.FEventSig.t
  val filter_map :
    ('-> 'b option) -> 'Ccell.Frp.FEventSig.t -> 'Ccell.Frp.FEventSig.t
  val changes :
    ?eq:('-> '-> bool) ->
    '-> 'Ccell.Frp.FEventSig.t -> 'Ccell.Frp.FEventSig.t
  val history :
    int -> 'Ccell.Frp.FEventSig.t -> 'a list Ccell.Frp.FEventSig.t
  val reduce :
    '-> ('-> 'a) Ccell.Frp.FEventSig.t -> 'Ccell.Frp.FEventSig.t
  val fold :
    ('-> '-> 'a) ->
    '-> 'Ccell.Frp.FEventSig.t -> 'Ccell.Frp.FEventSig.t
  val select : 'Ccell.Frp.FEventSig.t list -> 'Ccell.Frp.FEventSig.t
  val take : int -> 'Ccell.Frp.FEventSig.t -> 'Ccell.Frp.FEventSig.t
  val take_while :
    ('-> bool) -> 'Ccell.Frp.FEventSig.t -> 'Ccell.Frp.FEventSig.t
  val drop : int -> 'Ccell.Frp.FEventSig.t -> 'Ccell.Frp.FEventSig.t
  val drop_while :
    ('-> bool) -> 'Ccell.Frp.FEventSig.t -> 'Ccell.Frp.FEventSig.t
  val zip :
    'Ccell.Frp.FEventSig.t ->
    'Ccell.Frp.FEventSig.t -> ('a * 'b) Ccell.Frp.FEventSig.t
  val sequence :
    'Ccell.Frp.FEventSig.t list -> 'a list Ccell.Frp.FEventSig.t
  val future : ('-> 'b) -> '-> 'Ccell.Frp.FEventSig.t
  val react : '-> 'Ccell.Frp.FEventSig.t -> 'Ccell.Frp.FEventSig.react
end