sig
  type 'a t
  type 'a event
  val make : '-> 'Ccell.Frp.ReactSig.t * ('-> unit)
  val put : 'Ccell.Frp.ReactSig.t -> 'Ccell.Frp.ReactSig.t -> unit
  val set : 'Ccell.Frp.ReactSig.t -> '-> unit
  val read : 'Ccell.Frp.ReactSig.t -> 'a
  val return : '-> 'Ccell.Frp.ReactSig.t
  val map : ('-> 'b) -> 'Ccell.Frp.ReactSig.t -> 'Ccell.Frp.ReactSig.t
  val map2 :
    ('-> '-> 'c) ->
    'Ccell.Frp.ReactSig.t ->
    'Ccell.Frp.ReactSig.t -> 'Ccell.Frp.ReactSig.t
  val map3 :
    ('-> '-> '-> 'd) ->
    'Ccell.Frp.ReactSig.t ->
    'Ccell.Frp.ReactSig.t ->
    'Ccell.Frp.ReactSig.t -> 'Ccell.Frp.ReactSig.t
  val app :
    ('-> 'b) Ccell.Frp.ReactSig.t ->
    'Ccell.Frp.ReactSig.t -> 'Ccell.Frp.ReactSig.t
  val sequence : 'Ccell.Frp.ReactSig.t list -> 'a list Ccell.Frp.ReactSig.t
  val changes :
    ?eq:('-> '-> bool) ->
    'Ccell.Frp.ReactSig.t -> 'Ccell.Frp.ReactSig.t
  val history :
    int -> 'Ccell.Frp.ReactSig.t -> 'a list Ccell.Frp.ReactSig.t
  val delay : int -> 'Ccell.Frp.ReactSig.t -> 'Ccell.Frp.ReactSig.t
  val delay_while :
    ('-> bool) -> 'Ccell.Frp.ReactSig.t -> 'Ccell.Frp.ReactSig.t
  val bind :
    'Ccell.Frp.ReactSig.t ->
    ('-> 'Ccell.Frp.ReactSig.t) -> 'Ccell.Frp.ReactSig.t
  val ( >>= ) :
    'Ccell.Frp.ReactSig.t ->
    ('-> 'Ccell.Frp.ReactSig.t) -> 'Ccell.Frp.ReactSig.t
  val join :
    'Ccell.Frp.ReactSig.t Ccell.Frp.ReactSig.t -> 'Ccell.Frp.ReactSig.t
  val switch :
    'Ccell.Frp.ReactSig.t ->
    'Ccell.Frp.ReactSig.t Ccell.Frp.ReactSig.event ->
    'Ccell.Frp.ReactSig.t
  val reduce :
    '-> ('-> 'a) Ccell.Frp.ReactSig.event -> 'Ccell.Frp.ReactSig.t
  val fold :
    ('-> '-> 'a) ->
    '-> 'Ccell.Frp.ReactSig.event -> 'Ccell.Frp.ReactSig.t
  val event : 'Ccell.Frp.ReactSig.t -> 'Ccell.Frp.ReactSig.event
end