functor (Eq : EqType->
  sig
    type 'a v = 'Eq.t
    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