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