sig
  module type VALUE =
    sig
      type +'a t
      val create :
        '-> 'Eliom_client_value.t -> 'Eliom_shared_sigs.VALUE.t
      val client : 'Eliom_shared_sigs.VALUE.t -> 'Eliom_client_value.t
      val local : 'Eliom_shared_sigs.VALUE.t -> 'a
    end
  module type S =
    sig
      type 'a t
      type 'a sv
      val const : '-> 'Eliom_shared_sigs.S.t
      val value : 'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.sv
      val map :
        ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
        ('-> 'b) Eliom_shared_sigs.S.sv ->
        'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t
      val fmap :
        ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
        ('-> 'b option) Eliom_shared_sigs.S.sv ->
        'Eliom_shared_sigs.S.sv ->
        'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t
      val merge :
        ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
        ('-> '-> 'a) Eliom_shared_sigs.S.sv ->
        '-> 'Eliom_shared_sigs.S.t list -> 'Eliom_shared_sigs.S.t
      val l2 :
        ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
        ('-> '-> 'c) Eliom_shared_sigs.S.sv ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t
      val l3 :
        ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
        ('-> '-> '-> 'd) Eliom_shared_sigs.S.sv ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t
      val l4 :
        ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
        ('-> '-> '-> '-> 'e) Eliom_shared_sigs.S.sv ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t
      val l5 :
        ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
        ('-> '-> '-> '-> '-> 'f) Eliom_shared_sigs.S.sv ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t
      val l6 :
        ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
        ('-> '-> '-> '-> '-> '-> 'g) Eliom_shared_sigs.S.sv ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t
      val switch :
        ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
        'Eliom_shared_sigs.S.t Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t
      module Infix :
        sig
          val ( >|= ) :
            'Eliom_shared_sigs.S.t ->
            ('-> 'b) Eliom_shared_sigs.S.sv -> 'Eliom_shared_sigs.S.t
          val ( =|< ) :
            ('-> 'b) Eliom_shared_sigs.S.sv ->
            'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t
        end
      module Lwt :
        sig
          val map_s :
            ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
            ('-> 'Lwt.t) Eliom_shared_sigs.S.sv ->
            'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t Lwt.t
          val l2_s :
            ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
            ('-> '-> 'Lwt.t) Eliom_shared_sigs.S.sv ->
            'Eliom_shared_sigs.S.t ->
            'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t Lwt.t
          val l3_s :
            ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
            ('-> '-> '-> 'Lwt.t) Eliom_shared_sigs.S.sv ->
            'Eliom_shared_sigs.S.t ->
            'Eliom_shared_sigs.S.t ->
            'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t Lwt.t
          val l4_s :
            ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
            ('-> '-> '-> '-> 'Lwt.t) Eliom_shared_sigs.S.sv ->
            'Eliom_shared_sigs.S.t ->
            'Eliom_shared_sigs.S.t ->
            'Eliom_shared_sigs.S.t ->
            'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t Lwt.t
          val l5_s :
            ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
            ('-> '-> '-> '-> '-> 'Lwt.t) Eliom_shared_sigs.S.sv ->
            'Eliom_shared_sigs.S.t ->
            'Eliom_shared_sigs.S.t ->
            'Eliom_shared_sigs.S.t ->
            'Eliom_shared_sigs.S.t ->
            'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t Lwt.t
          val l6_s :
            ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
            ('-> '-> '-> '-> '-> '-> 'Lwt.t)
            Eliom_shared_sigs.S.sv ->
            'Eliom_shared_sigs.S.t ->
            'Eliom_shared_sigs.S.t ->
            'Eliom_shared_sigs.S.t ->
            'Eliom_shared_sigs.S.t ->
            'Eliom_shared_sigs.S.t ->
            'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t Lwt.t
          val merge_s :
            ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
            ('-> '-> 'Lwt.t) Eliom_shared_sigs.S.sv ->
            '->
            'Eliom_shared_sigs.S.t list -> 'Eliom_shared_sigs.S.t Lwt.t
        end
    end
  module type RLIST =
    sig
      type 'a t
      type 'a handle
      type 'a signal
      type 'a sv
      type 'a ct
      type 'a chandle
      val create :
        ?default:('Eliom_shared_sigs.RLIST.ct *
                  'Eliom_shared_sigs.RLIST.chandle)
                 option Eliom_client_value.t ->
        ?reset_default:bool ->
        'a list ->
        'Eliom_shared_sigs.RLIST.t * 'Eliom_shared_sigs.RLIST.handle
      val concat :
        'Eliom_shared_sigs.RLIST.t ->
        'Eliom_shared_sigs.RLIST.t -> 'Eliom_shared_sigs.RLIST.t
      val value :
        'Eliom_shared_sigs.RLIST.t -> 'a list Eliom_shared_sigs.RLIST.sv
      val signal :
        ?eq:('-> '-> bool) Eliom_shared_sigs.RLIST.sv ->
        'Eliom_shared_sigs.RLIST.t ->
        'a list Eliom_shared_sigs.RLIST.signal
      val singleton_s :
        'Eliom_shared_sigs.RLIST.signal -> 'Eliom_shared_sigs.RLIST.t
      val map :
        ('-> 'b) Eliom_shared_sigs.RLIST.sv ->
        'Eliom_shared_sigs.RLIST.t -> 'Eliom_shared_sigs.RLIST.t
      val from_signal :
        ?eq:('-> '-> bool) Eliom_shared_sigs.RLIST.sv ->
        'a list Eliom_shared_sigs.RLIST.signal ->
        'Eliom_shared_sigs.RLIST.t
      val acc_e :
        ?init:'Eliom_shared_sigs.RLIST.t *
              'Eliom_shared_sigs.RLIST.handle ->
        'React.E.t Eliom_client_value.t -> 'Eliom_shared_sigs.RLIST.t
      module Lwt :
        sig
          val map_p :
            ('-> 'Lwt.t) Eliom_shared_sigs.RLIST.sv ->
            'Eliom_shared_sigs.RLIST.t ->
            'Eliom_shared_sigs.RLIST.t Lwt.t
        end
    end
end