sig
  module Make_01_00 :
    functor (X : XML_sigs.T->
      sig
        module Info : XML_sigs.Info
        type uri = X.uri
        val string_of_uri : uri -> string
        val uri_of_string : string -> uri
        type +'a attrib
        val to_xmlattribs : 'a attrib list -> X.attrib list
        val to_attrib : X.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 : X.event_handler -> [> `OnBlur ] attrib
        val a_onclick : X.event_handler -> [> `OnClick ] attrib
        val a_ondblclick : X.event_handler -> [> `OnDblClick ] attrib
        val a_onchange : X.event_handler -> [> `OnChange ] attrib
        val a_onfocus : X.event_handler -> [> `OnFocus ] attrib
        val a_onload : X.event_handler -> [> `OnLoad ] attrib
        val a_onunload : X.event_handler -> [> `OnUnload ] attrib
        val a_onreset : X.event_handler -> [> `OnReset ] attrib
        val a_onselect : X.event_handler -> [> `OnSelect ] attrib
        val a_onsubmit : X.event_handler -> [> `OnSubmit ] attrib
        val a_onmousedown : X.event_handler -> [> `OnMouseDown ] attrib
        val a_onmouseup : X.event_handler -> [> `OnMouseUp ] attrib
        val a_onmouseover : X.event_handler -> [> `OnMouseOver ] attrib
        val a_onmousemove : X.event_handler -> [> `OnMouseMove ] attrib
        val a_onmouseout : X.event_handler -> [> `OnMouseOut ] attrib
        val a_onkeypress : X.event_handler -> [> `OnKeyPress ] attrib
        val a_onkeydown : X.event_handler -> [> `OnKeyDown ] attrib
        val a_onkeyup : X.event_handler -> [> `OnKeyUp ] attrib
        val a_profile : X.uri -> [> `Profile ] attrib
        val a_version : XHTML_types.cdata -> [> `Version ] attrib
        val a_xmlns : [< `W3_org_1999_xhtml ] -> [> `XMLns ] attrib
        val a_cite : X.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 : X.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 : X.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 : X.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 : X.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 : X.uri -> [> `Classid ] attrib
        val a_codebase : X.uri -> [> `Codebase ] attrib
        val a_data : X.uri -> [> `Data ] attrib
        val a_codetype : XHTML_types.contenttype -> [> `Codetype ] attrib
        val a_archive : X.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:X.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:X.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:X.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:X.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:X.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 : X.elt -> 'a elt
        val totl : X.elt list -> 'a elt list
        val toelt : 'a elt -> X.elt
        val toeltl : 'a elt list -> X.elt list
        type doc = [ `Html ] elt
        val doc_toelt : doc -> X.elt
        val a_name_01_00 : XHTML_types.cdata -> [> `Name_01_00 ] attrib
      end
  module Make_01_01 :
    functor (X : XML_sigs.T->
      sig
        module Info : XML_sigs.Info
        type uri = X.uri
        val string_of_uri : uri -> string
        val uri_of_string : string -> uri
        type +'a attrib
        val to_xmlattribs : 'a attrib list -> X.attrib list
        val to_attrib : X.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 : X.event_handler -> [> `OnBlur ] attrib
        val a_onclick : X.event_handler -> [> `OnClick ] attrib
        val a_ondblclick : X.event_handler -> [> `OnDblClick ] attrib
        val a_onchange : X.event_handler -> [> `OnChange ] attrib
        val a_onfocus : X.event_handler -> [> `OnFocus ] attrib
        val a_onload : X.event_handler -> [> `OnLoad ] attrib
        val a_onunload : X.event_handler -> [> `OnUnload ] attrib
        val a_onreset : X.event_handler -> [> `OnReset ] attrib
        val a_onselect : X.event_handler -> [> `OnSelect ] attrib
        val a_onsubmit : X.event_handler -> [> `OnSubmit ] attrib
        val a_onmousedown : X.event_handler -> [> `OnMouseDown ] attrib
        val a_onmouseup : X.event_handler -> [> `OnMouseUp ] attrib
        val a_onmouseover : X.event_handler -> [> `OnMouseOver ] attrib
        val a_onmousemove : X.event_handler -> [> `OnMouseMove ] attrib
        val a_onmouseout : X.event_handler -> [> `OnMouseOut ] attrib
        val a_onkeypress : X.event_handler -> [> `OnKeyPress ] attrib
        val a_onkeydown : X.event_handler -> [> `OnKeyDown ] attrib
        val a_onkeyup : X.event_handler -> [> `OnKeyUp ] attrib
        val a_profile : X.uri -> [> `Profile ] attrib
        val a_version : XHTML_types.cdata -> [> `Version ] attrib
        val a_xmlns : [< `W3_org_1999_xhtml ] -> [> `XMLns ] attrib
        val a_cite : X.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 : X.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 : X.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 : X.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 : X.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 : X.uri -> [> `Classid ] attrib
        val a_codebase : X.uri -> [> `Codebase ] attrib
        val a_data : X.uri -> [> `Data ] attrib
        val a_codetype : XHTML_types.contenttype -> [> `Codetype ] attrib
        val a_archive : X.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:X.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:X.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:X.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:X.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:X.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 : X.elt -> 'a elt
        val totl : X.elt list -> 'a elt list
        val toelt : 'a elt -> X.elt
        val toeltl : 'a elt list -> X.elt list
        type doc = [ `Html ] elt
        val doc_toelt : doc -> X.elt
      end
  module Make :
    functor (XML : XML_sigs.T->
      sig
        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
end