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 = 'a ReactiveData.RList.t
type 'a data = 'a list
type 'a msg = Patch of 'a patch | Set of 'a data
type 'a handle = 'a 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 : ('a -> 'b) -> 'a msg -> 'b msg
val fold : ('a -> 'b msg -> 'a) -> 'b t -> 'a -> 'a React.signal
val event : 'a t -> 'a msg React.E.t
val cons : 'a -> 'a handle -> unit
val snoc : 'a -> 'a handle -> unit
val insert : 'a -> int -> 'a handle -> unit
val remove : int -> 'a handle -> unit
val remove_last : 'a t * 'a handle -> unit
val remove_eq : ?eq:('a -> 'a -> bool) -> 'a t * 'a handle -> 'a -> unit
val update : 'a -> int -> 'a handle -> unit
val update_eq :
?eq:('a -> 'a -> bool) -> 'a t * 'a handle -> 'a -> 'a -> unit
val move : int -> int -> 'a handle -> unit
val singleton : 'a -> 'a t
val rev : 'a t -> 'a t
val filter : ('a -> bool) -> 'a t -> 'a t
val for_all : ('a -> bool) -> 'a t -> bool React.S.t
val create :
?default:('a ReactiveData.RList.t * 'a 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:('a -> 'a -> bool) Value.t -> 'a t -> 'a list React.S.t
val singleton_s : 'a React.S.t -> 'a t
val map : ('a -> 'b) Value.t -> 'a t -> 'b t
val from_signal :
?eq:('a -> 'a -> bool) Value.t -> 'a list React.S.t -> 'a t
val acc_e :
?init:'a t * 'a handle -> 'a React.E.t Eliom_client_value.t -> 'a t
module Lwt :
sig val map_p : ('a -> 'b Lwt.t) Value.t -> 'a t -> 'b t Lwt.t end
end