functor (X : Xml_sigs.T->
  sig
    module Xml :
      sig
        type uri = X.uri
        val string_of_uri : uri -> string
        val uri_of_string : string -> uri
        type aname = string
        type event_handler = X.event_handler
        type attrib = X.attrib
        val float_attrib : aname -> float -> attrib
        val int_attrib : aname -> int -> attrib
        val string_attrib : aname -> string -> attrib
        val space_sep_attrib : aname -> string list -> attrib
        val comma_sep_attrib : aname -> string list -> attrib
        val event_handler_attrib : aname -> event_handler -> attrib
        val uri_attrib : aname -> uri -> attrib
        val uris_attrib : aname -> uri list -> attrib
        type elt = X.elt
        type ename = string
        val empty : unit -> elt
        val comment : string -> elt
        val pcdata : string -> elt
        val encodedpcdata : string -> elt
        val entity : string -> elt
        val leaf : ?a:attrib list -> ename -> elt
        val node : ?a:attrib list -> ename -> elt list -> elt
        val cdata : string -> elt
        val cdata_script : string -> elt
        val cdata_style : string -> elt
      end
    module Info : Xml_sigs.Info
    type uri = Xml.uri
    val string_of_uri : uri -> string
    val uri_of_string : string -> uri
    type +'a attrib
    val to_xmlattribs : 'a attrib list -> Xml.attrib list
    val to_attrib : Xml.attrib -> 'a attrib
    val a_class : Xhtml_types.nmtokens -> [> `Class ] attrib
    val a_id : Xhtml_types.id -> [> `Id ] attrib
    val a_title : Xhtml_types.cdata -> [> `Title ] attrib
    val a_xml_lang : Xhtml_types.nmtoken -> [> `XML_lang ] attrib
    val a_onblur : Xml.event_handler -> [> `OnBlur ] attrib
    val a_onclick : Xml.event_handler -> [> `OnClick ] attrib
    val a_ondblclick : Xml.event_handler -> [> `OnDblClick ] attrib
    val a_onchange : Xml.event_handler -> [> `OnChange ] attrib
    val a_onfocus : Xml.event_handler -> [> `OnFocus ] attrib
    val a_onload : Xml.event_handler -> [> `OnLoad ] attrib
    val a_onunload : Xml.event_handler -> [> `OnUnload ] attrib
    val a_onreset : Xml.event_handler -> [> `OnReset ] attrib
    val a_onselect : Xml.event_handler -> [> `OnSelect ] attrib
    val a_onsubmit : Xml.event_handler -> [> `OnSubmit ] attrib
    val a_onmousedown : Xml.event_handler -> [> `OnMouseDown ] attrib
    val a_onmouseup : Xml.event_handler -> [> `OnMouseUp ] attrib
    val a_onmouseover : Xml.event_handler -> [> `OnMouseOver ] attrib
    val a_onmousemove : Xml.event_handler -> [> `OnMouseMove ] attrib
    val a_onmouseout : Xml.event_handler -> [> `OnMouseOut ] attrib
    val a_onkeypress : Xml.event_handler -> [> `OnKeyPress ] attrib
    val a_onkeydown : Xml.event_handler -> [> `OnKeyDown ] attrib
    val a_onkeyup : Xml.event_handler -> [> `OnKeyUp ] attrib
    val a_profile : Xml.uri -> [> `Profile ] attrib
    val a_version : Xhtml_types.cdata -> [> `Version ] attrib
    val a_xmlns : [< `W3_org_1999_xhtml ] -> [> `XMLns ] attrib
    val a_cite : Xml.uri -> [> `Cite ] attrib
    val a_xml_space : [< `Preserve ] -> [> `XML_space ] attrib
    val a_accesskey : Xhtml_types.character -> [> `Accesskey ] attrib
    val a_charset : Xhtml_types.charset -> [> `Charset ] attrib
    val a_accept_charset : Xhtml_types.charset -> [> `Accept_charset ] attrib
    val a_accept : Xhtml_types.contenttype -> [> `Accept ] attrib
    val a_href : Xml.uri -> [> `Href ] attrib
    val a_hreflang : Xhtml_types.languagecode -> [> `Hreflang ] attrib
    val a_rel : Xhtml_types.linktypes -> [> `Rel ] attrib
    val a_rev : Xhtml_types.linktypes -> [> `Rev ] attrib
    val a_tabindex : Xhtml_types.number -> [> `Tabindex ] attrib
    val a_type : Xhtml_types.contenttype -> [> `Type ] attrib
    val a_datetime : Xhtml_types.cdata -> [> `Datetime ] attrib
    val a_dir : [< `Ltr | `Rtl ] -> [> `Dir ] attrib
    val a_action : Xml.uri -> [> `Action ] attrib
    val a_checked : [< `Checked ] -> [> `Checked ] attrib
    val a_cols : Xhtml_types.number -> [> `Cols ] attrib
    val a_enctype : Xhtml_types.contenttype -> [> `Enctype ] attrib
    val a_for : Xhtml_types.idref -> [> `For ] attrib
    val a_maxlength : Xhtml_types.number -> [> `Maxlength ] attrib
    val a_method : [< `Get | `Post ] -> [> `Method ] attrib
    val a_multiple : [< `Multiple ] -> [> `Multiple ] attrib
    val a_name : Xhtml_types.cdata -> [> `Name ] attrib
    val a_rows : Xhtml_types.number -> [> `Rows ] attrib
    val a_selected : [< `Selected ] -> [> `Selected ] attrib
    val a_size : Xhtml_types.number -> [> `Size ] attrib
    val a_src : Xml.uri -> [> `Src ] attrib
    val a_input_type :
      [< `Button
       | `Checkbox
       | `File
       | `Hidden
       | `Image
       | `Password
       | `Radio
       | `Reset
       | `Submit
       | `Text ] ->
      [> `Input_Type ] attrib
    val a_value : Xhtml_types.cdata -> [> `Value ] attrib
    val a_value_type : [< `Data | `Object | `Ref ] -> [> `Value_Type ] attrib
    val a_disabled : [< `Disabled ] -> [> `Disabled ] attrib
    val a_readonly : [< `ReadOnly ] -> [> `ReadOnly ] attrib
    val a_button_type :
      [< `Button | `Reset | `Submit ] -> [> `Button_Type ] attrib
    val a_label : Xhtml_types.text -> [> `Label ] attrib
    val a_abbr : Xhtml_types.text -> [> `Abbr ] attrib
    val a_align :
      [< `Center | `Char | `Justify | `Left | `Right ] -> [> `Align ] attrib
    val a_axis : Xhtml_types.cdata -> [> `Axis ] attrib
    val a_colspan : Xhtml_types.number -> [> `Colspan ] attrib
    val a_headers : Xhtml_types.idrefs -> [> `Headers ] attrib
    val a_rowspan : Xhtml_types.number -> [> `Rowspan ] attrib
    val a_scope :
      [< `Col | `Colgroup | `Row | `Rowgroup ] -> [> `Scope ] attrib
    val a_summary : Xhtml_types.text -> [> `Summary ] attrib
    val a_valign :
      [< `Baseline | `Bottom | `Middle | `Top ] -> [> `Valign ] attrib
    val a_border : Xhtml_types.pixels -> [> `Border ] attrib
    val a_cellpadding : Xhtml_types.length -> [> `Cellpadding ] attrib
    val a_cellspacing : Xhtml_types.length -> [> `Cellspacing ] attrib
    val a_datapagesize : Xhtml_types.cdata -> [> `Datapagesize ] attrib
    val a_frame :
      [< `Above
       | `Below
       | `Border
       | `Box
       | `Hsides
       | `LHS
       | `RHS
       | `Void
       | `Vsides ] ->
      [> `Frame ] attrib
    val a_rules :
      [< `All | `Cols | `Groups | `None | `Rows ] -> [> `Rules ] attrib
    val a_char : Xhtml_types.character -> [> `Char ] attrib
    val a_charoff : Xhtml_types.length -> [> `Charoff ] attrib
    val a_span : Xhtml_types.number -> [> `Span ] attrib
    val a_alt : Xhtml_types.text -> [> `Alt ] attrib
    val a_height : Xhtml_types.length -> [> `Height ] attrib
    val a_longdesc : Xml.uri -> [> `Longdesc ] attrib
    val a_width : Xhtml_types.length -> [> `Width ] attrib
    type shape = [ `Circle | `Default | `Poly | `Rect ]
    val a_shape : shape -> [> `Shape ] attrib
    val a_coords : int list -> [> `Coords ] attrib
    val a_nohref : [< `Nohref ] -> [> `Nohref ] attrib
    val a_usemap : Xhtml_types.idref -> [> `Usemap ] attrib
    val a_ismap : [< `Ismap ] -> [> `Ismap ] attrib
    val a_declare : [< `Declare ] -> [> `Declare ] attrib
    val a_classid : Xml.uri -> [> `Classid ] attrib
    val a_codebase : Xml.uri -> [> `Codebase ] attrib
    val a_data : Xml.uri -> [> `Data ] attrib
    val a_codetype : Xhtml_types.contenttype -> [> `Codetype ] attrib
    val a_archive : Xml.uri list -> [> `Archive ] attrib
    val a_standby : Xhtml_types.text -> [> `Standby ] attrib
    val a_fs_rows : Xhtml_types.multilengths -> [> `FS_Rows ] attrib
    val a_fs_cols : Xhtml_types.multilengths -> [> `FS_Cols ] attrib
    val a_frameborder : [< `One | `Zero ] -> [> `Frameborder ] attrib
    val a_marginheight : Xhtml_types.pixels -> [> `Marginheight ] attrib
    val a_marginwidth : Xhtml_types.pixels -> [> `Marginwidth ] attrib
    val a_noresize : [< `Noresize ] -> [> `Noresize ] attrib
    val a_scrolling : [< `Auto | `No | `Yes ] -> [> `Scrolling ] attrib
    val a_target : Xhtml_types.frametarget -> [> `Target ] attrib
    val a_content : Xhtml_types.cdata -> [> `Content ] attrib
    val a_http_equiv : Xhtml_types.nmtoken -> [> `Http_equiv ] attrib
    val a_scheme : Xhtml_types.cdata -> [> `Scheme ] attrib
    val a_defer : [< `Defer ] -> [> `Defer ] attrib
    val a_media : Xhtml_types.mediadesc -> [> `Media ] attrib
    val a_style : string -> [> `Style_Attr ] attrib
    type +'a elt
    type ('a, 'b) nullary = ?a:'a attrib list -> unit -> 'b elt
    type ('a, 'b, 'c) unary = ?a:'a attrib list -> 'b elt -> 'c elt
    type ('a, 'b, 'c, 'd) binary =
        ?a:'a attrib list -> 'b elt -> 'c elt -> 'd elt
    type ('a, 'b, 'c, 'd, 'e, 'f) quadry =
        ?a:'a attrib list -> 'b elt -> 'c elt -> 'd elt -> 'e elt -> 'f elt
    type ('a, 'b, 'c) star = ?a:'a attrib list -> 'b elt list -> 'c elt
    type ('a, 'b, 'c) plus =
        ?a:'a attrib list -> 'b elt -> 'b elt list -> 'c elt
    type html = [ `Html ] elt
    val html :
      ?a:[< `Dir | `Id | `Version | `XML_lang | `XMLns ] attrib list ->
      [< `Head ] elt -> [< `Body | `Frameset ] elt -> html
    val head :
      ?a:[< `Dir | `Id | `Profile | `XML_lang ] attrib list ->
      [< `Base | `Title ] elt ->
      [< `Link | `Meta | `Object | `Script | `Style ] elt list ->
      [> `Head ] elt
    val title :
      ([< Xhtml_types.title_attrib ], [< Xhtml_types.title_content ],
       [> Xhtml_types.title ])
      unary
    val body :
      ([< Xhtml_types.body_attrib ], [< Xhtml_types.body_content ],
       [> Xhtml_types.body ])
      star
    val pcdata : string -> [> `PCDATA ] elt
    val entity : string -> [> `PCDATA ] elt
    val space : unit -> [> `PCDATA ] elt
    val cdata : string -> [> `PCDATA ] elt
    val cdata_script : string -> [> `PCDATA ] elt
    val cdata_style : string -> [> `PCDATA ] elt
    val unsafe_data : string -> 'a elt
    val h1 :
      ([< Xhtml_types.h1_attrib ], [< Xhtml_types.h1_content ],
       [> Xhtml_types.h1 ])
      star
    val h2 :
      ([< Xhtml_types.h2_attrib ], [< Xhtml_types.h2_content ],
       [> Xhtml_types.h2 ])
      star
    val h3 :
      ([< Xhtml_types.h3_attrib ], [< Xhtml_types.h3_content ],
       [> Xhtml_types.h3 ])
      star
    val h4 :
      ([< Xhtml_types.h4_attrib ], [< Xhtml_types.h4_content ],
       [> Xhtml_types.h4 ])
      star
    val h5 :
      ([< Xhtml_types.h5_attrib ], [< Xhtml_types.h5_content ],
       [> Xhtml_types.h5 ])
      star
    val h6 :
      ([< Xhtml_types.h6_attrib ], [< Xhtml_types.h6_content ],
       [> Xhtml_types.h6 ])
      star
    val address :
      ([< Xhtml_types.address_attrib ], [< Xhtml_types.address_content ],
       [> Xhtml_types.address ])
      star
    val blockquote :
      ([< `Cite
        | `Class
        | `Dir
        | `Id
        | `OnClick
        | `OnDblClick
        | `OnKeyDown
        | `OnKeyPress
        | `OnKeyUp
        | `OnMouseDown
        | `OnMouseMove
        | `OnMouseOut
        | `OnMouseOver
        | `OnMouseUp
        | `Style_Attr
        | `Title
        | `XML_lang
        | `XML_space ],
       [< `Address
        | `Blockquote
        | `Del
        | `Div
        | `Dl
        | `Fieldset
        | `Form
        | `H1
        | `H2
        | `H3
        | `H4
        | `H5
        | `H6
        | `Hr
        | `Ins
        | `Noscript
        | `Ol
        | `P
        | `PCDATA
        | `Pre
        | `Script
        | `Table
        | `Ul ],
       [> `Blockquote ])
      star
    val div :
      ([< Xhtml_types.div_attrib ], [< Xhtml_types.div_content ],
       [> Xhtml_types.div ])
      star
    val p :
      ([< Xhtml_types.p_attrib ], [< Xhtml_types.p_content ],
       [> Xhtml_types.p ])
      star
    val pre :
      ([< `Class
        | `Dir
        | `Id
        | `OnClick
        | `OnDblClick
        | `OnKeyDown
        | `OnKeyPress
        | `OnKeyUp
        | `OnMouseDown
        | `OnMouseMove
        | `OnMouseOut
        | `OnMouseOver
        | `OnMouseUp
        | `Style_Attr
        | `Title
        | `XML_lang
        | `XML_space ],
       [< `A
        | `Abbr
        | `Acronym
        | `B
        | `Bdo
        | `Big
        | `Br
        | `Button
        | `Cite
        | `Code
        | `Del
        | `Dfn
        | `Em
        | `I
        | `Iframe
        | `Img
        | `Input
        | `Ins
        | `Kbd
        | `Label
        | `Map
        | `Noscript
        | `Object
        | `PCDATA
        | `Q
        | `Ruby_complex
        | `Ruby_simple1
        | `Ruby_simple2
        | `Samp
        | `Script
        | `Select
        | `Small
        | `Span
        | `Strong
        | `Sub
        | `Sup
        | `Textarea
        | `Tt
        | `Var ],
       [> `Pre ])
      star
    val abbr :
      ([< Xhtml_types.abbr_attrib ], [< Xhtml_types.abbr_content ],
       [> Xhtml_types.abbr ])
      star
    val acronym :
      ([< Xhtml_types.acronym_attrib ], [< Xhtml_types.acronym_content ],
       [> Xhtml_types.acronym ])
      star
    val br : ([< Xhtml_types.br_attrib ], [> Xhtml_types.br ]) nullary
    val cite :
      ([< Xhtml_types.cite_attrib ], [< Xhtml_types.cite_content ],
       [> Xhtml_types.cite ])
      star
    val code :
      ([< Xhtml_types.code_attrib ], [< Xhtml_types.code_content ],
       [> Xhtml_types.code ])
      star
    val dfn :
      ([< Xhtml_types.dfn_attrib ], [< Xhtml_types.dfn_content ],
       [> Xhtml_types.dfn ])
      star
    val em :
      ([< Xhtml_types.em_attrib ], [< Xhtml_types.em_content ],
       [> Xhtml_types.em ])
      star
    val kbd :
      ([< Xhtml_types.kbd_attrib ], [< Xhtml_types.kbd_content ],
       [> Xhtml_types.kbd ])
      star
    val q :
      ([< Xhtml_types.q_attrib ], [< Xhtml_types.q_content ],
       [> Xhtml_types.q ])
      star
    val samp :
      ([< Xhtml_types.samp_attrib ], [< Xhtml_types.samp_content ],
       [> Xhtml_types.samp ])
      star
    val span :
      ([< Xhtml_types.span_attrib ], [< Xhtml_types.span_content ],
       [> Xhtml_types.span ])
      star
    val strong :
      ([< Xhtml_types.strong_attrib ], [< Xhtml_types.strong_content ],
       [> Xhtml_types.strong ])
      star
    val var :
      ([< Xhtml_types.var_attrib ], [< Xhtml_types.var_content ],
       [> Xhtml_types.var ])
      star
    val a :
      ([< Xhtml_types.a_attrib ], [< Xhtml_types.a_content ],
       [> Xhtml_types.a ])
      star
    val dl :
      ([< Xhtml_types.dl_attrib ], [< Xhtml_types.dl_content ],
       [> Xhtml_types.dl ])
      plus
    val ol :
      ([< Xhtml_types.ol_attrib ], [< Xhtml_types.ol_content ],
       [> Xhtml_types.ol ])
      plus
    val ul :
      ([< Xhtml_types.ul_attrib ], [< Xhtml_types.ul_content ],
       [> Xhtml_types.ul ])
      plus
    val dd :
      ([< Xhtml_types.dd_attrib ], [< Xhtml_types.dd_content ],
       [> Xhtml_types.dd ])
      star
    val dt :
      ([< Xhtml_types.dt_attrib ], [< Xhtml_types.dt_content ],
       [> Xhtml_types.dt ])
      star
    val li :
      ([< Xhtml_types.li_attrib ], [< Xhtml_types.li_content ],
       [> Xhtml_types.li ])
      star
    val hr : ([< Xhtml_types.hr_attrib ], [> Xhtml_types.hr ]) nullary
    val b :
      ([< Xhtml_types.b_attrib ], [< Xhtml_types.b_content ],
       [> Xhtml_types.b ])
      star
    val big :
      ([< Xhtml_types.big_attrib ], [< Xhtml_types.big_content ],
       [> Xhtml_types.big ])
      star
    val i :
      ([< Xhtml_types.i_attrib ], [< Xhtml_types.i_content ],
       [> Xhtml_types.i ])
      star
    val small :
      ([< Xhtml_types.small_attrib ], [< Xhtml_types.small_content ],
       [> Xhtml_types.small ])
      star
    val sub :
      ([< Xhtml_types.sub_attrib ], [< Xhtml_types.sub_content ],
       [> Xhtml_types.sub ])
      star
    val sup :
      ([< Xhtml_types.sup_attrib ], [< Xhtml_types.sup_content ],
       [> Xhtml_types.sup ])
      star
    val tt :
      ([< Xhtml_types.tt_attrib ], [< Xhtml_types.tt_content ],
       [> Xhtml_types.tt ])
      star
    val bdo :
      dir:[< `Ltr | `Rtl ] ->
      ([< Xhtml_types.bdo_attrib ], [< Xhtml_types.bdo_content ],
       [> Xhtml_types.bdo ])
      star
    val area :
      alt:Xhtml_types.text ->
      ([< Xhtml_types.area_attrib ], [> Xhtml_types.area ]) nullary
    val map :
      id:Xhtml_types.id ->
      ([< Xhtml_types.map_attrib ], [< Xhtml_types.map_content ],
       [> Xhtml_types.map ])
      plus
    val del :
      ([< Xhtml_types.del_attrib ], [< Xhtml_types.del_content ],
       [> Xhtml_types.del ])
      star
    val ins :
      ([< Xhtml_types.ins_attrib ], [< Xhtml_types.ins_content ],
       [> Xhtml_types.ins ])
      star
    val script :
      contenttype:Xhtml_types.contenttype ->
      ([< Xhtml_types.script_attrib ], [< Xhtml_types.script_content ],
       [> Xhtml_types.script ])
      unary
    val noscript :
      ([< Xhtml_types.noscript_attrib ], [< Xhtml_types.noscript_content ],
       [> Xhtml_types.noscript ])
      plus
    module Basic_Forms :
      sig
        val form :
          action:Xml.uri ->
          ([< Xhtml_types.form_attrib ], [< Xhtml_types.form_content ],
           [> Xhtml_types.form ])
          plus
        val input :
          ([< Xhtml_types.input_attrib ], [> Xhtml_types.input ]) nullary
        val label :
          ([< Xhtml_types.label_attrib ], [< Xhtml_types.label_content ],
           [> Xhtml_types.label ])
          star
        val option :
          ([< Xhtml_types.option_attrib ], [< Xhtml_types.option_content ],
           [> Xhtml_types.selectoption ])
          unary
        val select :
          ([< Xhtml_types.select_attrib ], [< Xhtml_types.select_content ],
           [> Xhtml_types.select ])
          plus
        val textarea :
          rows:Xhtml_types.number ->
          cols:Xhtml_types.number ->
          ([< Xhtml_types.textarea_attrib ],
           [< Xhtml_types.textarea_content ], [> Xhtml_types.textarea ])
          unary
      end
    val form :
      action:Xml.uri ->
      ([< Xhtml_types.form_attrib ], [< Xhtml_types.form_content ],
       [> Xhtml_types.form ])
      plus
    val input :
      ([< Xhtml_types.input_attrib ], [> Xhtml_types.input ]) nullary
    val label :
      ([< Xhtml_types.label_attrib ], [< Xhtml_types.label_content ],
       [> Xhtml_types.label ])
      star
    val optgroup :
      label:Xhtml_types.text ->
      ([< Xhtml_types.optgroup_attrib ], [< Xhtml_types.optgroup_content ],
       [> Xhtml_types.optgroup ])
      plus
    val option :
      ([< Xhtml_types.option_attrib ], [< Xhtml_types.option_content ],
       [> Xhtml_types.selectoption ])
      unary
    val select :
      ([< Xhtml_types.select_attrib ], [< Xhtml_types.select_content ],
       [> Xhtml_types.select ])
      plus
    val textarea :
      rows:Xhtml_types.number ->
      cols:Xhtml_types.number ->
      ([< Xhtml_types.textarea_attrib ], [< Xhtml_types.textarea_content ],
       [> Xhtml_types.textarea ])
      unary
    val fieldset :
      ([< Xhtml_types.fieldset_attrib ], [< Xhtml_types.fieldset_content ],
       [> Xhtml_types.fieldset ])
      star
    val legend :
      ([< Xhtml_types.legend_attrib ], [< Xhtml_types.legend_content ],
       [> Xhtml_types.legend ])
      star
    val button :
      ([< Xhtml_types.button_attrib ], [< Xhtml_types.button_content ],
       [> Xhtml_types.button ])
      star
    module Basic_Tables :
      sig
        val a_align : [< `Center | `Left | `Right ] -> [> `Align ] attrib
        val a_scope : [< `Col | `Row ] -> [> `Scope ] attrib
        val a_valign : [< `Bottom | `Middle | `Top ] -> [> `Valign ] attrib
        val caption :
          ([< Xhtml_types.caption_attrib ], [< Xhtml_types.caption_content ],
           [> Xhtml_types.caption ])
          star
        val table :
          ?caption:[< `Caption ] elt ->
          ([< Xhtml_types.table_attrib ], [< Xhtml_types.table_content ],
           [> Xhtml_types.table ])
          plus
        val td :
          ([< Xhtml_types.td_attrib ], [< Xhtml_types.td_content ],
           [> Xhtml_types.td ])
          star
        val th :
          ([< Xhtml_types.th_attrib ], [< Xhtml_types.th_content ],
           [> Xhtml_types.th ])
          star
        val tr :
          ([< Xhtml_types.tr_attrib ], [< Xhtml_types.tr_content ],
           [> Xhtml_types.tr ])
          plus
      end
    val caption :
      ([< Xhtml_types.caption_attrib ], [< Xhtml_types.caption_content ],
       [> Xhtml_types.caption ])
      star
    val table :
      ?caption:[< `Caption ] elt ->
      ?columns:[< `Colgroups of [< `Colgroup ] elt list
                | `Cols of [< `Col ] elt list ] ->
      ([< `Border
        | `Cellpadding
        | `Cellspacing
        | `Class
        | `Datapagesize
        | `Dir
        | `Frame
        | `Id
        | `OnClick
        | `OnDblClick
        | `OnKeyDown
        | `OnKeyPress
        | `OnKeyUp
        | `OnMouseDown
        | `OnMouseMove
        | `OnMouseOut
        | `OnMouseOver
        | `OnMouseUp
        | `Rules
        | `Style_Attr
        | `Summary
        | `Title
        | `Width
        | `XML_lang
        | `XML_space ],
       [< `Tr ], [> `Table ])
      plus
    val tablex :
      ?caption:[< `Caption ] elt ->
      ?columns:[< `Colgroups of [< `Colgroup ] elt list
                | `Cols of [< `Col ] elt list ] ->
      ?thead:[< `Thead ] elt ->
      ?tfoot:[< `Tfoot ] elt ->
      ([< `Border
        | `Cellpadding
        | `Cellspacing
        | `Class
        | `Datapagesize
        | `Dir
        | `Frame
        | `Id
        | `OnClick
        | `OnDblClick
        | `OnKeyDown
        | `OnKeyPress
        | `OnKeyUp
        | `OnMouseDown
        | `OnMouseMove
        | `OnMouseOut
        | `OnMouseOver
        | `OnMouseUp
        | `Rules
        | `Style_Attr
        | `Summary
        | `Title
        | `Width
        | `XML_lang
        | `XML_space ],
       [< `Tbody ], [> `Table ])
      plus
    val td :
      ([< Xhtml_types.td_attrib ], [< Xhtml_types.td_content ],
       [> Xhtml_types.td ])
      star
    val th :
      ([< Xhtml_types.th_attrib ], [< Xhtml_types.th_content ],
       [> Xhtml_types.th ])
      star
    val tr :
      ([< Xhtml_types.tr_attrib ], [< Xhtml_types.tr_content ],
       [> Xhtml_types.tr ])
      plus
    val col : ([< Xhtml_types.col_attrib ], [> Xhtml_types.col ]) nullary
    val colgroup :
      ([< Xhtml_types.colgroup_attrib ], [< Xhtml_types.colgroup_content ],
       [> Xhtml_types.colgroup ])
      star
    val thead :
      ([< Xhtml_types.thead_attrib ], [< Xhtml_types.thead_content ],
       [> Xhtml_types.thead ])
      plus
    val tbody :
      ([< Xhtml_types.tbody_attrib ], [< Xhtml_types.tbody_content ],
       [> Xhtml_types.tbody ])
      plus
    val tfoot :
      ([< Xhtml_types.tfoot_attrib ], [< Xhtml_types.tfoot_content ],
       [> Xhtml_types.tfoot ])
      plus
    val img :
      src:Xml.uri ->
      alt:Xhtml_types.text ->
      ([< Xhtml_types.img_attrib ], [> Xhtml_types.img ]) nullary
    val object_ :
      ([< Xhtml_types.object__attrib ], [< Xhtml_types.object__content ],
       [> Xhtml_types.object_ ])
      star
    val param :
      name:Xhtml_types.text ->
      ([< Xhtml_types.param_attrib ], [> Xhtml_types.param ]) nullary
    val frameset :
      ?noframes:[< `Noframes ] elt ->
      ([< Xhtml_types.frameset_attrib ], [< Xhtml_types.frameset_content ],
       [> Xhtml_types.frameset ])
      plus
    val frame :
      src:Xml.uri ->
      ([< Xhtml_types.frame_attrib ], [> Xhtml_types.frame ]) nullary
    val noframes :
      ([< Xhtml_types.noframes_attrib ], [< Xhtml_types.noframes_content ],
       [> Xhtml_types.noframes ])
      unary
    val iframe :
      ([< Xhtml_types.iframe_attrib ], [< Xhtml_types.iframe_content ],
       [> Xhtml_types.iframe ])
      star
    val meta :
      content:Xhtml_types.cdata ->
      ([< Xhtml_types.meta_attrib ], [> Xhtml_types.meta ]) nullary
    val style :
      contenttype:Xhtml_types.contenttype ->
      ([< Xhtml_types.style_attrib ], [< Xhtml_types.style_content ],
       [> Xhtml_types.style ])
      star
    val link : ([< Xhtml_types.link_attrib ], [> Xhtml_types.link ]) nullary
    val base :
      href:Xml.uri ->
      ([< Xhtml_types.base_attrib ], [> Xhtml_types.base ]) nullary
    val ruby_simple1 :
      ?a:[< Xhtml_types.common ] attrib list ->
      [< `Rb ] elt -> [< `Rt ] elt -> [> `Ruby_simple1 ] elt
    val ruby_simple2 :
      ?a:[< Xhtml_types.common ] attrib list ->
      [< `Rb ] elt ->
      [< `Rp ] elt -> [< `Rt ] elt -> [< `Rp ] elt -> [> `Ruby_simple2 ] elt
    val ruby_complex :
      ?a:[< Xhtml_types.common ] attrib list ->
      [< `Rbc ] elt -> [< `Rtc_complex ] elt -> [> `Ruby_complex ] elt
    val rbc :
      ([< Xhtml_types.rbc_attrib ], [< Xhtml_types.rbc_content ],
       [> Xhtml_types.rbc ])
      plus
    val rtc :
      ([< Xhtml_types.rtc_attrib ], [< Xhtml_types.rtc_content ],
       [> Xhtml_types.rtc ])
      plus
    val rtc_complex :
      ([< Xhtml_types.rtc_complex_attrib ],
       [< Xhtml_types.rtc_complex_content ], [> Xhtml_types.rtc_complex ])
      plus
    val rb :
      ([< Xhtml_types.rb_attrib ], [< Xhtml_types.rb_content ],
       [> Xhtml_types.rb ])
      star
    val rt :
      ([< Xhtml_types.rt_attrib ], [< Xhtml_types.rt_content ],
       [> Xhtml_types.rt ])
      star
    val rt_complex :
      ([< Xhtml_types.rt_complex_attrib ],
       [< Xhtml_types.rt_complex_content ], [> Xhtml_types.rt_complex ])
      star
    val rp :
      ([< Xhtml_types.rp_attrib ], [< Xhtml_types.rp_content ],
       [> Xhtml_types.rp ])
      star
    val a_rbspan : Xhtml_types.number -> [> `Rbspan ] attrib
    val tot : Xml.elt -> 'a elt
    val totl : Xml.elt list -> 'a elt list
    val toelt : 'a elt -> Xml.elt
    val toeltl : 'a elt list -> Xml.elt list
    type doc = [ `Html ] elt
    val doc_toelt : doc -> Xml.elt
  end