sig
  module W :
    sig
      type 'a t = 'React.signal
      val return : '-> 'a t
      type ('a, 'b) ft = '-> 'b
      val fmap : ('a, 'b) ft -> 'a t -> 'b t
      type 'a tlist = 'ReactiveData.RList.t
      val nil : unit -> 'a tlist
      val singleton : 'a t -> 'a tlist
      val cons : 'a t -> 'a tlist -> 'a tlist
      val append : 'a tlist -> 'a tlist -> 'a tlist
      val map : ('a, 'b) ft -> 'a tlist -> 'b tlist
    end
  type 'a wrap = 'W.t
  type 'a list_wrap = 'W.tlist
  type uri = Xml.uri
  val string_of_uri : (uri, string) W.ft
  val uri_of_string : (string, uri) W.ft
  type aname = Xml.aname
  type event_handler
  type mouse_event_handler
  type keyboard_event_handler
  type touch_event_handler
  type attrib = Xml.attrib
  val event_handler_attrib : aname -> event_handler -> attrib
  val mouse_event_handler_attrib : aname -> mouse_event_handler -> attrib
  val keyboard_event_handler_attrib :
    aname -> keyboard_event_handler -> attrib
  val touch_event_handler_attrib : aname -> touch_event_handler -> attrib
  type elt = Xml.elt
  type ename = string
  val empty : unit -> elt
  val comment : string -> elt
  val pcdata : string wrap -> elt
  val encodedpcdata : string wrap -> elt
  val entity : string -> elt
  val leaf : ?a:attrib list -> ename -> elt
  val cdata : string -> elt
  val cdata_script : string -> elt
  val cdata_style : string -> elt
  val float_attrib : aname -> float React.S.t -> attrib
  val int_attrib : aname -> int React.S.t -> attrib
  val string_attrib : aname -> string React.S.t -> attrib
  val space_sep_attrib : aname -> string list React.S.t -> attrib
  val comma_sep_attrib : aname -> string list React.S.t -> attrib
  val uri_attrib : aname -> uri React.S.t -> attrib
  val uris_attrib : aname -> uri list React.S.t -> attrib
  val node : ?a:attrib list -> string -> elt list_wrap -> elt
end