sig
  type 'a p = I of int * '| R of int | U of int * '| 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