sig   module type S =     sig       type 'a t       type 'a data       type 'a patch       type 'a msg =           Patch of 'ReactiveData.S.patch         | Set of 'ReactiveData.S.data       type 'a handle       val empty : 'ReactiveData.S.t       val create :         'ReactiveData.S.data ->         'ReactiveData.S.t * 'ReactiveData.S.handle       val from_event :         'ReactiveData.S.data ->         'ReactiveData.S.msg React.E.t -> 'ReactiveData.S.t       val from_signal :         ?eq:('-> '-> bool) ->         'ReactiveData.S.data React.S.t -> 'ReactiveData.S.t       val const : 'ReactiveData.S.data -> 'ReactiveData.S.t       val patch : 'ReactiveData.S.handle -> 'ReactiveData.S.patch -> unit       val set : 'ReactiveData.S.handle -> 'ReactiveData.S.data -> unit       val map_msg :         ('-> 'b) -> 'ReactiveData.S.msg -> 'ReactiveData.S.msg       val map : ('-> 'b) -> 'ReactiveData.S.t -> 'ReactiveData.S.t       val value : 'ReactiveData.S.t -> 'ReactiveData.S.data       val fold :         ('-> 'ReactiveData.S.msg -> 'a) ->         'ReactiveData.S.t -> '-> 'React.signal       val signal :         ?eq:('-> '-> bool) ->         'ReactiveData.S.t -> 'ReactiveData.S.data React.S.t       val event : 'ReactiveData.S.t -> 'ReactiveData.S.msg React.E.t     end   module RList :     sig       type 'a p = I of int * '| R of int | U of int * '| X of int * int       type 'a patch = 'ReactiveData.RList.p list       type 'a t       type 'a data = 'a list       type 'a msg = Patch of 'a patch | Set of 'a data       type 'a handle       val empty : 'a t       val create : 'a data -> 'a t * 'a handle       val from_event : 'a data -> 'a msg React.E.t -> 'a t       val from_signal : ?eq:('-> '-> bool) -> 'a data React.S.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 map : ('-> 'b) -> 'a t -> 'b t       val value : 'a t -> 'a data       val fold : ('-> 'b msg -> 'a) -> 'b t -> '-> 'React.signal       val signal : ?eq:('-> '-> bool) -> 'a t -> 'a data React.S.t       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 update : '-> int -> 'a handle -> unit       val move : int -> int -> 'a handle -> unit       val singleton : '-> 'a t       val singleton_s : 'React.S.t -> 'a t       val concat : 'a t -> 'a t -> 'a t       val rev : 'a t -> 'a t     end   module RMap :     functor (M : Map.S->       sig         type 'a t         type 'a data = 'M.t         type 'a patch = [ `Add of M.key * '| `Del of M.key ] list         type 'a msg = Patch of 'a patch | Set of 'a data         type 'a handle         val empty : 'a t         val create : 'a data -> 'a t * 'a handle         val from_event : 'a data -> 'a msg React.E.t -> 'a t         val from_signal : ?eq:('-> '-> bool) -> 'a data React.S.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 map : ('-> 'b) -> 'a t -> 'b t         val value : 'a t -> 'a data         val fold : ('-> 'b msg -> 'a) -> 'b t -> '-> 'React.signal         val signal : ?eq:('-> '-> bool) -> 'a t -> 'a data React.S.t         val event : 'a t -> 'a msg React.E.t       end   module type DATA =     sig       type 'a data       type 'a patch       val merge :         'ReactiveData.DATA.patch ->         'ReactiveData.DATA.data -> 'ReactiveData.DATA.data       val map_patch :         ('-> 'b) ->         'ReactiveData.DATA.patch -> 'ReactiveData.DATA.patch       val map_data :         ('-> 'b) -> 'ReactiveData.DATA.data -> 'ReactiveData.DATA.data       val empty : 'ReactiveData.DATA.data       val equal :         ('-> '-> bool) ->         'ReactiveData.DATA.data -> 'ReactiveData.DATA.data -> bool       val diff :         eq:('-> '-> bool) ->         'ReactiveData.DATA.data ->         'ReactiveData.DATA.data -> 'ReactiveData.DATA.patch     end   module Make :     functor (D : DATA->       sig         type 'a t         type 'a data = 'D.data         type 'a patch = 'D.patch         type 'a msg = Patch of 'a patch | Set of 'a data         type 'a handle         val empty : 'a t         val create : 'a data -> 'a t * 'a handle         val from_event : 'a data -> 'a msg React.E.t -> 'a t         val from_signal : ?eq:('-> '-> bool) -> 'a data React.S.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 map : ('-> 'b) -> 'a t -> 'b t         val value : 'a t -> 'a data         val fold : ('-> 'b msg -> 'a) -> 'b t -> '-> 'React.signal         val signal : ?eq:('-> '-> bool) -> 'a t -> 'a data React.S.t         val event : 'a t -> 'a msg React.E.t       end end