sig
  module Sb :
    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
  module Si :
    sig
      type 'a v = int
      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
  module Sf :
    sig
      type 'a v = float
      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
end