sig
  val to_signal :
    init:'-> ?eq:('-> '-> bool) -> 'React.S.t Lwt.t -> 'React.S.t
  module Value :
    sig
      type 'a t = 'a
      val create : '-> 'Eliom_client_value.t -> 'a t
      val client : 'a t -> 'Eliom_client_value.t
      val local : 'a t -> 'a
    end
  module React :
    sig
      module S :
        sig
          type 'a t = 'React.signal
          val retain :
            'React.signal -> (unit -> unit) -> [ `R of unit -> unit ]
          val eq_fun : 'React.signal -> ('-> '-> bool) option
          val stop : ?strong:bool -> 'React.signal -> unit
          val equal :
            ?eq:('-> '-> bool) ->
            'React.signal -> 'React.signal -> bool
          val trace :
            ?iff:bool t -> ('-> unit) -> 'React.signal -> 'React.signal
          val hold :
            ?eq:('-> '-> bool) -> '-> 'React.event -> 'React.signal
          val app :
            ?eq:('-> '-> bool) ->
            ('-> 'b) React.signal -> 'React.signal -> 'React.signal
          val filter :
            ?eq:('-> '-> bool) ->
            ('-> bool) -> '-> 'React.signal -> 'React.signal
          val diff : ('-> '-> 'b) -> 'React.signal -> 'React.event
          val changes : 'React.signal -> 'React.event
          val sample :
            ('-> '-> 'c) ->
            'React.event -> 'React.signal -> 'React.event
          val on :
            ?eq:('-> '-> bool) ->
            bool React.signal -> '-> 'React.signal -> 'React.signal
          val when_ :
            ?eq:('-> '-> bool) ->
            bool React.signal -> '-> 'React.signal -> 'React.signal
          val dismiss :
            ?eq:('-> '-> bool) ->
            'React.event -> '-> 'React.signal -> 'React.signal
          val accum :
            ?eq:('-> '-> bool) ->
            ('-> 'a) React.event -> '-> 'React.signal
          val fold :
            ?eq:('-> '-> bool) ->
            ('-> '-> 'a) -> '-> 'React.event -> 'React.signal
          val bind :
            ?eq:('-> '-> bool) ->
            'React.signal -> ('-> 'React.signal) -> 'React.signal
          val fix :
            ?eq:('-> '-> bool) ->
            '-> ('React.signal -> 'React.signal * 'b) -> 'b
          val l1 :
            ?eq:('-> '-> bool) ->
            ('-> 'b) -> 'React.signal -> 'React.signal
          module Bool :
            sig
              val zero : bool React.signal
              val one : bool React.signal
              val not : bool React.signal -> bool React.signal
              val ( && ) :
                bool React.signal -> bool React.signal -> bool React.signal
              val ( || ) :
                bool React.signal -> bool React.signal -> bool React.signal
              val edge : bool React.signal -> bool React.event
              val rise : bool React.signal -> unit React.event
              val fall : bool React.signal -> unit React.event
              val flip : bool -> 'React.event -> bool React.signal
            end
          module Int :
            sig
              val zero : int React.signal
              val one : int React.signal
              val minus_one : int React.signal
              val ( ~- ) : int React.signal -> int React.signal
              val succ : int React.signal -> int React.signal
              val pred : int React.signal -> int React.signal
              val ( + ) :
                int React.signal -> int React.signal -> int React.signal
              val ( - ) :
                int React.signal -> int React.signal -> int React.signal
              val ( * ) :
                int React.signal -> int React.signal -> int React.signal
              val ( mod ) :
                int React.signal -> int React.signal -> int React.signal
              val abs : int React.signal -> int React.signal
              val max_int : int React.signal
              val min_int : int React.signal
              val ( land ) :
                int React.signal -> int React.signal -> int React.signal
              val ( lor ) :
                int React.signal -> int React.signal -> int React.signal
              val ( lxor ) :
                int React.signal -> int React.signal -> int React.signal
              val lnot : int React.signal -> int React.signal
              val ( lsl ) :
                int React.signal -> int React.signal -> int React.signal
              val ( lsr ) :
                int React.signal -> int React.signal -> int React.signal
              val ( asr ) :
                int React.signal -> int React.signal -> int React.signal
            end
          module Float :
            sig
              val zero : float React.signal
              val one : float React.signal
              val minus_one : float React.signal
              val ( ~-. ) : float React.signal -> float React.signal
              val ( +. ) :
                float React.signal ->
                float React.signal -> float React.signal
              val ( -. ) :
                float React.signal ->
                float React.signal -> float React.signal
              val ( *. ) :
                float React.signal ->
                float React.signal -> float React.signal
              val ( /. ) :
                float React.signal ->
                float React.signal -> float React.signal
              val ( ** ) :
                float React.signal ->
                float React.signal -> float React.signal
              val sqrt : float React.signal -> float React.signal
              val exp : float React.signal -> float React.signal
              val log : float React.signal -> float React.signal
              val log10 : float React.signal -> float React.signal
              val cos : float React.signal -> float React.signal
              val sin : float React.signal -> float React.signal
              val tan : float React.signal -> float React.signal
              val acos : float React.signal -> float React.signal
              val asin : float React.signal -> float React.signal
              val atan : float React.signal -> float React.signal
              val atan2 :
                float React.signal ->
                float React.signal -> float React.signal
              val cosh : float React.signal -> float React.signal
              val sinh : float React.signal -> float React.signal
              val tanh : float React.signal -> float React.signal
              val ceil : float React.signal -> float React.signal
              val floor : float React.signal -> float React.signal
              val abs_float : float React.signal -> float React.signal
              val mod_float :
                float React.signal ->
                float React.signal -> float React.signal
              val frexp : float React.signal -> (float * int) React.signal
              val ldexp :
                float React.signal -> int React.signal -> float React.signal
              val modf : float React.signal -> (float * float) React.signal
              val float : int React.signal -> float React.signal
              val float_of_int : int React.signal -> float React.signal
              val truncate : float React.signal -> int React.signal
              val int_of_float : float React.signal -> int React.signal
              val infinity : float React.signal
              val neg_infinity : float React.signal
              val nan : float React.signal
              val max_float : float React.signal
              val min_float : float React.signal
              val epsilon_float : float React.signal
              val classify_float : float React.signal -> fpclass React.signal
            end
          module Pair :
            sig
              val pair :
                ?eq:('a * '-> 'a * '-> bool) ->
                'React.signal -> 'React.signal -> ('a * 'b) React.signal
              val fst :
                ?eq:('-> '-> bool) ->
                ('a * 'b) React.signal -> 'React.signal
              val snd :
                ?eq:('-> '-> bool) ->
                ('b * 'a) React.signal -> 'React.signal
            end
          module Option :
            sig
              val none : 'a option React.signal
              val some : 'React.signal -> 'a option React.signal
              val value :
                ?eq:('-> '-> bool) ->
                default:[ `Always of 'React.signal
                        | `Init of 'React.signal ] ->
                'a option React.signal -> 'React.signal
            end
          module Compare :
            sig
              val ( = ) :
                'React.signal -> 'React.signal -> bool React.signal
              val ( <> ) :
                'React.signal -> 'React.signal -> bool React.signal
              val ( < ) :
                'React.signal -> 'React.signal -> bool React.signal
              val ( > ) :
                'React.signal -> 'React.signal -> bool React.signal
              val ( <= ) :
                'React.signal -> 'React.signal -> bool React.signal
              val ( >= ) :
                'React.signal -> 'React.signal -> bool React.signal
              val compare :
                'React.signal -> 'React.signal -> int React.signal
              val ( == ) :
                'React.signal -> 'React.signal -> bool React.signal
              val ( != ) :
                'React.signal -> 'React.signal -> bool React.signal
            end
          module type EqType =
            sig type 'a t val equal : 'a t -> 'a t -> bool end
          module type S =
            sig
              type 'a v
              val create :
                'a v ->
                'a v React.signal * (?step:React.step -> 'a v -> unit)
              val equal : 'a v React.signal -> 'a v React.signal -> bool
              val hold : 'a v -> 'a v React.event -> 'a v React.signal
              val app :
                ('-> 'b v) React.signal ->
                'React.signal -> 'b v React.signal
              val map : ('-> 'b v) -> 'React.signal -> 'b v React.signal
              val filter :
                ('a v -> bool) ->
                'a v -> 'a v React.signal -> 'a v React.signal
              val fmap :
                ('-> 'b v option) ->
                'b v -> 'React.signal -> 'b v React.signal
              val when_ :
                bool React.signal ->
                'a v -> 'a v React.signal -> 'a v React.signal
              val dismiss :
                'React.event ->
                'a v -> 'a v React.signal -> 'a v React.signal
              val accum :
                ('a v -> 'a v) React.event -> 'a v -> 'a v React.signal
              val fold :
                ('a v -> '-> 'a v) ->
                'a v -> 'React.event -> 'a v React.signal
              val merge :
                ('a v -> '-> 'a v) ->
                'a v -> 'React.signal list -> 'a v React.signal
              val switch :
                'a v React.signal React.signal -> 'a v React.signal
              val bind :
                'React.signal ->
                ('-> 'a v React.signal) -> 'a v React.signal
              val fix :
                'a v -> ('a v React.signal -> 'a v React.signal * 'b) -> 'b
              val l1 : ('-> 'b v) -> 'React.signal -> 'b v React.signal
              val l2 :
                ('-> '-> 'c v) ->
                'React.signal -> 'React.signal -> 'c v React.signal
              val l3 :
                ('-> '-> '-> 'd v) ->
                'React.signal ->
                'React.signal -> 'React.signal -> 'd v React.signal
              val l4 :
                ('-> '-> '-> '-> 'e v) ->
                'React.signal ->
                'React.signal ->
                'React.signal -> 'React.signal -> 'e v React.signal
              val l5 :
                ('-> '-> '-> '-> '-> 'f v) ->
                'React.signal ->
                'React.signal ->
                'React.signal ->
                'React.signal -> 'React.signal -> 'f v React.signal
              val l6 :
                ('-> '-> '-> '-> '-> '-> 'g v) ->
                'React.signal ->
                'React.signal ->
                'React.signal ->
                'React.signal ->
                'React.signal -> 'React.signal -> 'g v React.signal
            end
          module Make :
            functor (Eq : EqType->
              sig
                type 'a v = 'Eq.t
                val create :
                  'a v ->
                  'a v React.signal * (?step:React.step -> 'a v -> unit)
                val equal : 'a v React.signal -> 'a v React.signal -> bool
                val hold : 'a v -> 'a v React.event -> 'a v React.signal
                val app :
                  ('-> 'b v) React.signal ->
                  'React.signal -> 'b v React.signal
                val map :
                  ('-> 'b v) -> 'React.signal -> 'b v React.signal
                val filter :
                  ('a v -> bool) ->
                  'a v -> 'a v React.signal -> 'a v React.signal
                val fmap :
                  ('-> 'b v option) ->
                  'b v -> 'React.signal -> 'b v React.signal
                val when_ :
                  bool React.signal ->
                  'a v -> 'a v React.signal -> 'a v React.signal
                val dismiss :
                  'React.event ->
                  'a v -> 'a v React.signal -> 'a v React.signal
                val accum :
                  ('a v -> 'a v) React.event -> 'a v -> 'a v React.signal
                val fold :
                  ('a v -> '-> 'a v) ->
                  'a v -> 'React.event -> 'a v React.signal
                val merge :
                  ('a v -> '-> 'a v) ->
                  'a v -> 'React.signal list -> 'a v React.signal
                val switch :
                  'a v React.signal React.signal -> 'a v React.signal
                val bind :
                  'React.signal ->
                  ('-> 'a v React.signal) -> 'a v React.signal
                val fix :
                  'a v -> ('a v React.signal -> 'a v React.signal * 'b) -> 'b
                val l1 : ('-> 'b v) -> 'React.signal -> 'b v React.signal
                val l2 :
                  ('-> '-> 'c v) ->
                  'React.signal -> 'React.signal -> 'c v React.signal
                val l3 :
                  ('-> '-> '-> 'd v) ->
                  'React.signal ->
                  'React.signal -> 'React.signal -> 'd v React.signal
                val l4 :
                  ('-> '-> '-> '-> 'e v) ->
                  'React.signal ->
                  'React.signal ->
                  'React.signal -> 'React.signal -> 'e v React.signal
                val l5 :
                  ('-> '-> '-> '-> '-> 'f v) ->
                  'React.signal ->
                  'React.signal ->
                  'React.signal ->
                  'React.signal -> 'React.signal -> 'f v React.signal
                val l6 :
                  ('-> '-> '-> '-> '-> '-> 'g v) ->
                  'React.signal ->
                  'React.signal ->
                  'React.signal ->
                  'React.signal ->
                  'React.signal -> 'React.signal -> 'g v React.signal
              end
          module Special :
            sig
              module Sb :
                sig
                  type 'a v = bool
                  val create :
                    'a v ->
                    'a v React.signal * (?step:React.step -> 'a v -> unit)
                  val equal : 'a v React.signal -> 'a v React.signal -> bool
                  val hold : 'a v -> 'a v React.event -> 'a v React.signal
                  val app :
                    ('-> 'b v) React.signal ->
                    'React.signal -> 'b v React.signal
                  val map :
                    ('-> 'b v) -> 'React.signal -> 'b v React.signal
                  val filter :
                    ('a v -> bool) ->
                    'a v -> 'a v React.signal -> 'a v React.signal
                  val fmap :
                    ('-> 'b v option) ->
                    'b v -> 'React.signal -> 'b v React.signal
                  val when_ :
                    bool React.signal ->
                    'a v -> 'a v React.signal -> 'a v React.signal
                  val dismiss :
                    'React.event ->
                    'a v -> 'a v React.signal -> 'a v React.signal
                  val accum :
                    ('a v -> 'a v) React.event -> 'a v -> 'a v React.signal
                  val fold :
                    ('a v -> '-> 'a v) ->
                    'a v -> 'React.event -> 'a v React.signal
                  val merge :
                    ('a v -> '-> 'a v) ->
                    'a v -> 'React.signal list -> 'a v React.signal
                  val switch :
                    'a v React.signal React.signal -> 'a v React.signal
                  val bind :
                    'React.signal ->
                    ('-> 'a v React.signal) -> 'a v React.signal
                  val fix :
                    'a v ->
                    ('a v React.signal -> 'a v React.signal * 'b) -> 'b
                  val l1 :
                    ('-> 'b v) -> 'React.signal -> 'b v React.signal
                  val l2 :
                    ('-> '-> 'c v) ->
                    'React.signal -> 'React.signal -> 'c v React.signal
                  val l3 :
                    ('-> '-> '-> 'd v) ->
                    'React.signal ->
                    'React.signal -> 'React.signal -> 'd v React.signal
                  val l4 :
                    ('-> '-> '-> '-> 'e v) ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal -> 'React.signal -> 'e v React.signal
                  val l5 :
                    ('-> '-> '-> '-> '-> 'f v) ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal -> 'React.signal -> 'f v React.signal
                  val l6 :
                    ('-> '-> '-> '-> '-> '-> 'g v) ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal -> 'React.signal -> 'g v React.signal
                end
              module Si :
                sig
                  type 'a v = int
                  val create :
                    'a v ->
                    'a v React.signal * (?step:React.step -> 'a v -> unit)
                  val equal : 'a v React.signal -> 'a v React.signal -> bool
                  val hold : 'a v -> 'a v React.event -> 'a v React.signal
                  val app :
                    ('-> 'b v) React.signal ->
                    'React.signal -> 'b v React.signal
                  val map :
                    ('-> 'b v) -> 'React.signal -> 'b v React.signal
                  val filter :
                    ('a v -> bool) ->
                    'a v -> 'a v React.signal -> 'a v React.signal
                  val fmap :
                    ('-> 'b v option) ->
                    'b v -> 'React.signal -> 'b v React.signal
                  val when_ :
                    bool React.signal ->
                    'a v -> 'a v React.signal -> 'a v React.signal
                  val dismiss :
                    'React.event ->
                    'a v -> 'a v React.signal -> 'a v React.signal
                  val accum :
                    ('a v -> 'a v) React.event -> 'a v -> 'a v React.signal
                  val fold :
                    ('a v -> '-> 'a v) ->
                    'a v -> 'React.event -> 'a v React.signal
                  val merge :
                    ('a v -> '-> 'a v) ->
                    'a v -> 'React.signal list -> 'a v React.signal
                  val switch :
                    'a v React.signal React.signal -> 'a v React.signal
                  val bind :
                    'React.signal ->
                    ('-> 'a v React.signal) -> 'a v React.signal
                  val fix :
                    'a v ->
                    ('a v React.signal -> 'a v React.signal * 'b) -> 'b
                  val l1 :
                    ('-> 'b v) -> 'React.signal -> 'b v React.signal
                  val l2 :
                    ('-> '-> 'c v) ->
                    'React.signal -> 'React.signal -> 'c v React.signal
                  val l3 :
                    ('-> '-> '-> 'd v) ->
                    'React.signal ->
                    'React.signal -> 'React.signal -> 'd v React.signal
                  val l4 :
                    ('-> '-> '-> '-> 'e v) ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal -> 'React.signal -> 'e v React.signal
                  val l5 :
                    ('-> '-> '-> '-> '-> 'f v) ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal -> 'React.signal -> 'f v React.signal
                  val l6 :
                    ('-> '-> '-> '-> '-> '-> 'g v) ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal -> 'React.signal -> 'g v React.signal
                end
              module Sf :
                sig
                  type 'a v = float
                  val create :
                    'a v ->
                    'a v React.signal * (?step:React.step -> 'a v -> unit)
                  val equal : 'a v React.signal -> 'a v React.signal -> bool
                  val hold : 'a v -> 'a v React.event -> 'a v React.signal
                  val app :
                    ('-> 'b v) React.signal ->
                    'React.signal -> 'b v React.signal
                  val map :
                    ('-> 'b v) -> 'React.signal -> 'b v React.signal
                  val filter :
                    ('a v -> bool) ->
                    'a v -> 'a v React.signal -> 'a v React.signal
                  val fmap :
                    ('-> 'b v option) ->
                    'b v -> 'React.signal -> 'b v React.signal
                  val when_ :
                    bool React.signal ->
                    'a v -> 'a v React.signal -> 'a v React.signal
                  val dismiss :
                    'React.event ->
                    'a v -> 'a v React.signal -> 'a v React.signal
                  val accum :
                    ('a v -> 'a v) React.event -> 'a v -> 'a v React.signal
                  val fold :
                    ('a v -> '-> 'a v) ->
                    'a v -> 'React.event -> 'a v React.signal
                  val merge :
                    ('a v -> '-> 'a v) ->
                    'a v -> 'React.signal list -> 'a v React.signal
                  val switch :
                    'a v React.signal React.signal -> 'a v React.signal
                  val bind :
                    'React.signal ->
                    ('-> 'a v React.signal) -> 'a v React.signal
                  val fix :
                    'a v ->
                    ('a v React.signal -> 'a v React.signal * 'b) -> 'b
                  val l1 :
                    ('-> 'b v) -> 'React.signal -> 'b v React.signal
                  val l2 :
                    ('-> '-> 'c v) ->
                    'React.signal -> 'React.signal -> 'c v React.signal
                  val l3 :
                    ('-> '-> '-> 'd v) ->
                    'React.signal ->
                    'React.signal -> 'React.signal -> 'd v React.signal
                  val l4 :
                    ('-> '-> '-> '-> 'e v) ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal -> 'React.signal -> 'e v React.signal
                  val l5 :
                    ('-> '-> '-> '-> '-> 'f v) ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal -> 'React.signal -> 'f v React.signal
                  val l6 :
                    ('-> '-> '-> '-> '-> '-> 'g v) ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal ->
                    'React.signal -> 'React.signal -> 'g v React.signal
                end
            end
          val const : '-> 'a t
          val value : 'a t -> 'Value.t
          val map :
            ?eq:('-> '-> bool) Value.t ->
            ('-> 'b) Value.t -> 'a t -> 'b t
          val fmap :
            ?eq:('-> '-> bool) Value.t ->
            ('-> 'b option) Value.t -> 'Value.t -> 'a t -> 'b t
          val merge :
            ?eq:('-> '-> bool) Value.t ->
            ('-> '-> 'a) Value.t -> '-> 'b t list -> 'a t
          val l2 :
            ?eq:('-> '-> bool) Value.t ->
            ('-> '-> 'c) Value.t -> 'a t -> 'b t -> 'c t
          val l3 :
            ?eq:('-> '-> bool) Value.t ->
            ('-> '-> '-> 'd) Value.t -> 'a t -> 'b t -> 'c t -> 'd t
          val l4 :
            ?eq:('-> '-> bool) Value.t ->
            ('-> '-> '-> '-> 'e) Value.t ->
            'a t -> 'b t -> 'c t -> 'd t -> 'e t
          val l5 :
            ?eq:('-> '-> bool) Value.t ->
            ('-> '-> '-> '-> '-> 'f) Value.t ->
            'a t -> 'b t -> 'c t -> 'd t -> 'e t -> 'f t
          val l6 :
            ?eq:('-> '-> bool) Value.t ->
            ('-> '-> '-> '-> '-> '-> 'g) Value.t ->
            'a t -> 'b t -> 'c t -> 'd t -> 'e t -> 'f t -> 'g t
          val switch : ?eq:('-> '-> bool) Value.t -> 'a t t -> 'a t
          module Infix :
            sig
              val ( >|= ) : 'a t -> ('-> 'b) Value.t -> 'b t
              val ( =|< ) : ('-> 'b) Value.t -> 'a t -> 'b t
            end
          module Lwt :
            sig
              val map_s :
                ?eq:('-> '-> bool) Value.t ->
                ('-> 'Lwt.t) Value.t -> 'a t -> 'b t Lwt.t
              val l2_s :
                ?eq:('-> '-> bool) Value.t ->
                ('-> '-> 'Lwt.t) Value.t -> 'a t -> 'b t -> 'c t Lwt.t
              val l3_s :
                ?eq:('-> '-> bool) Value.t ->
                ('-> '-> '-> 'Lwt.t) Value.t ->
                'a t -> 'b t -> 'c t -> 'd t Lwt.t
              val l4_s :
                ?eq:('-> '-> bool) Value.t ->
                ('-> '-> '-> '-> 'Lwt.t) Value.t ->
                'a t -> 'b t -> 'c t -> 'd t -> 'e t Lwt.t
              val l5_s :
                ?eq:('-> '-> bool) Value.t ->
                ('-> '-> '-> '-> '-> 'Lwt.t) Value.t ->
                'a t -> 'b t -> 'c t -> 'd t -> 'e t -> 'f t Lwt.t
              val l6_s :
                ?eq:('-> '-> bool) Value.t ->
                ('-> '-> '-> '-> '-> '-> 'Lwt.t) Value.t ->
                'a t -> 'b t -> 'c t -> 'd t -> 'e t -> 'f t -> 'g t Lwt.t
              val merge_s :
                ?eq:('-> '-> bool) Value.t ->
                ('-> '-> 'Lwt.t) Value.t ->
                '-> 'b t list -> 'a t Lwt.t
            end
          val create :
            ?eq:('-> '-> bool) ->
            ?default:('a t * (?step:React.step -> '-> unit)) option ->
            ?reset_default:bool ->
            '-> 'React.signal * (?step:React.step -> '-> unit)
        end
      module E :
        sig
          type 'a t = 'React.event
          val never : 'React.event
          val create :
            unit -> 'React.event * (?step:React.step -> '-> unit)
          val retain :
            'React.event -> (unit -> unit) -> [ `R of unit -> unit ]
          val stop : ?strong:bool -> 'React.event -> unit
          val equal : 'React.event -> 'React.event -> bool
          val trace :
            ?iff:bool React.signal ->
            ('-> unit) -> 'React.event -> 'React.event
          val once : 'React.event -> 'React.event
          val drop_once : 'React.event -> 'React.event
          val app :
            ('-> 'b) React.event -> 'React.event -> 'React.event
          val map : ('-> 'b) -> 'React.event -> 'React.event
          val stamp : 'React.event -> '-> 'React.event
          val filter : ('-> bool) -> 'React.event -> 'React.event
          val fmap : ('-> 'b option) -> 'React.event -> 'React.event
          val diff : ('-> '-> 'b) -> 'React.event -> 'React.event
          val changes :
            ?eq:('-> '-> bool) -> 'React.event -> 'React.event
          val on : bool React.signal -> 'React.event -> 'React.event
          val when_ : bool React.signal -> 'React.event -> 'React.event
          val dismiss : 'React.event -> 'React.event -> 'React.event
          val until : 'React.event -> 'React.event -> 'React.event
          val accum : ('-> 'a) React.event -> '-> 'React.event
          val fold :
            ('-> '-> 'a) -> '-> 'React.event -> 'React.event
          val select : 'React.event list -> 'React.event
          val merge :
            ('-> '-> 'a) -> '-> 'React.event list -> 'React.event
          val switch :
            'React.event -> 'React.event React.event -> 'React.event
          val fix : ('React.event -> 'React.event * 'b) -> 'b
          val l1 : ('-> 'b) -> 'React.event -> 'React.event
          val l2 :
            ('-> '-> 'c) ->
            'React.event -> 'React.event -> 'React.event
          val l3 :
            ('-> '-> '-> 'd) ->
            'React.event ->
            'React.event -> 'React.event -> 'React.event
          val l4 :
            ('-> '-> '-> '-> 'e) ->
            'React.event ->
            'React.event ->
            'React.event -> 'React.event -> 'React.event
          val l5 :
            ('-> '-> '-> '-> '-> 'f) ->
            'React.event ->
            'React.event ->
            'React.event ->
            'React.event -> 'React.event -> 'React.event
          val l6 :
            ('-> '-> '-> '-> '-> '-> 'g) ->
            'React.event ->
            'React.event ->
            'React.event ->
            'React.event ->
            'React.event -> 'React.event -> 'React.event
          module Option :
            sig
              val some : 'React.event -> 'a option React.event
              val value :
                ?default:'React.signal ->
                'a option React.event -> 'React.event
            end
        end
    end
  module FakeReactiveData :
    sig
      module RList :
        sig
          type 'a t = 'ReactiveData.RList.t
          type 'a handle = 'ReactiveData.RList.handle
        end
    end
  module ReactiveData :
    sig
      module RList :
        sig
          type 'a p =
              I of int * 'a
            | R of int
            | U of int * 'a
            | X of int * int
          type 'a patch = 'a p list
          type 'a t = 'ReactiveData.RList.t
          type 'a data = 'a list
          type 'a msg = Patch of 'a patch | Set of 'a data
          type 'a handle = 'ReactiveData.RList.handle
          val empty : 'a t
          val from_event : 'a data -> 'a msg React.E.t -> 'a t
          val const : 'a data -> 'a t
          val patch : 'a handle -> 'a patch -> unit
          val set : 'a handle -> 'a data -> unit
          val map_msg : ('-> 'b) -> 'a msg -> 'b msg
          val fold : ('-> 'b msg -> 'a) -> 'b t -> '-> 'React.signal
          val event : 'a t -> 'a msg React.E.t
          val cons : '-> 'a handle -> unit
          val snoc : '-> 'a handle -> unit
          val insert : '-> int -> 'a handle -> unit
          val remove : int -> 'a handle -> unit
          val remove_last : 'a t * 'a handle -> unit
          val remove_eq :
            ?eq:('-> '-> bool) -> 'a t * 'a handle -> '-> unit
          val update : '-> int -> 'a handle -> unit
          val update_eq :
            ?eq:('-> '-> bool) -> 'a t * 'a handle -> '-> '-> unit
          val move : int -> int -> 'a handle -> unit
          val singleton : '-> 'a t
          val rev : 'a t -> 'a t
          val filter : ('-> bool) -> 'a t -> 'a t
          val for_all : ('-> bool) -> 'a t -> bool React.S.t
          val create :
            ?default:('ReactiveData.RList.t * 'ReactiveData.RList.handle)
                     option Eliom_client_value.t ->
            ?reset_default:bool -> 'a list -> 'a t * 'a handle
          val concat : 'a t -> 'a t -> 'a t
          val value : 'a t -> 'a list Value.t
          val signal :
            ?eq:('-> '-> bool) Value.t -> 'a t -> 'a list React.S.t
          val singleton_s : 'React.S.t -> 'a t
          val map : ('-> 'b) Value.t -> 'a t -> 'b t
          val from_signal :
            ?eq:('-> '-> bool) Value.t -> 'a list React.S.t -> 'a t
          val acc_e :
            ?init:'a t * 'a handle ->
            'React.E.t Eliom_client_value.t -> 'a t
          module Lwt :
            sig
              val map_p : ('-> 'Lwt.t) Value.t -> 'a t -> 'b t Lwt.t
            end
        end
    end
end