sig
  val to_signal :
    init:'-> ?eq:('-> '-> bool) -> 'React.S.t Lwt.t -> 'React.S.t
  module Value : Eliom_shared_sigs.VALUE
  module React :
    sig
      module S :
        sig
          type 'a t
          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 :
            ?default:('React.S.t * (?step:React.step -> '-> unit)) option
                     Eliom_client_value.t ->
            ?reset_default:bool ->
            ?eq:('-> '-> bool) Value.t ->
            '-> 'a t * (?step:React.step -> '-> unit) Value.t
          val synced : 'a t -> bool
        end
    end
  module FakeReactiveData :
    sig module RList : sig type 'a t type 'a handle end end
  module ReactiveData :
    sig
      module RList :
        sig
          type 'a t
          type 'a handle
          val create :
            ?default:('FakeReactiveData.RList.t *
                      'FakeReactiveData.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
          val synced : 'a t -> bool
        end
    end
end