sig
  type 'a v
  val create :
    'a React.S.S.v ->
    'a React.S.S.v React.signal *
    (?step:React.step -> 'a React.S.S.v -> unit)
  val equal :
    'a React.S.S.v React.signal -> 'a React.S.S.v React.signal -> bool
  val hold :
    'a React.S.S.v ->
    'a React.S.S.v React.event -> 'a React.S.S.v React.signal
  val app :
    ('a -> 'b React.S.S.v) React.signal ->
    'a React.signal -> 'b React.S.S.v React.signal
  val map :
    ('a -> 'b React.S.S.v) -> 'a React.signal -> 'b React.S.S.v React.signal
  val filter :
    ('a React.S.S.v -> bool) ->
    'a React.S.S.v ->
    'a React.S.S.v React.signal -> 'a React.S.S.v React.signal
  val fmap :
    ('a -> 'b React.S.S.v option) ->
    'b React.S.S.v -> 'a React.signal -> 'b React.S.S.v React.signal
  val when_ :
    bool React.signal ->
    'a React.S.S.v ->
    'a React.S.S.v React.signal -> 'a React.S.S.v React.signal
  val dismiss :
    'b React.event ->
    'a React.S.S.v ->
    'a React.S.S.v React.signal -> 'a React.S.S.v React.signal
  val accum :
    ('a React.S.S.v -> 'a React.S.S.v) React.event ->
    'a React.S.S.v -> 'a React.S.S.v React.signal
  val fold :
    ('a React.S.S.v -> 'b -> 'a React.S.S.v) ->
    'a React.S.S.v -> 'b React.event -> 'a React.S.S.v React.signal
  val merge :
    ('a React.S.S.v -> 'b -> 'a React.S.S.v) ->
    'a React.S.S.v -> 'b React.signal list -> 'a React.S.S.v React.signal
  val switch :
    'a React.S.S.v React.signal React.signal -> 'a React.S.S.v React.signal
  val bind :
    'b React.signal ->
    ('b -> 'a React.S.S.v React.signal) -> 'a React.S.S.v React.signal
  val fix :
    'a React.S.S.v ->
    ('a React.S.S.v React.signal -> 'a React.S.S.v React.signal * 'b) -> 'b
  val l1 :
    ('a -> 'b React.S.S.v) -> 'a React.signal -> 'b React.S.S.v React.signal
  val l2 :
    ('a -> 'b -> 'c React.S.S.v) ->
    'a React.signal -> 'b React.signal -> 'c React.S.S.v React.signal
  val l3 :
    ('a -> 'b -> 'c -> 'd React.S.S.v) ->
    'a React.signal ->
    'b React.signal -> 'c React.signal -> 'd React.S.S.v React.signal
  val l4 :
    ('a -> 'b -> 'c -> 'd -> 'e React.S.S.v) ->
    'a React.signal ->
    'b React.signal ->
    'c React.signal -> 'd React.signal -> 'e React.S.S.v React.signal
  val l5 :
    ('a -> 'b -> 'c -> 'd -> 'e -> 'f React.S.S.v) ->
    'a React.signal ->
    'b React.signal ->
    'c React.signal ->
    'd React.signal -> 'e React.signal -> 'f React.S.S.v React.signal
  val l6 :
    ('a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g React.S.S.v) ->
    'a React.signal ->
    'b React.signal ->
    'c React.signal ->
    'd React.signal ->
    'e React.signal -> 'f React.signal -> 'g React.S.S.v React.signal
end