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