sig
  type html = string
  val h1 : ?atts:(string * string) list -> Html.html -> Html.html
  val h2 : ?atts:(string * string) list -> Html.html -> Html.html
  val h3 : ?atts:(string * string) list -> Html.html -> Html.html
  val h4 : ?atts:(string * string) list -> Html.html -> Html.html
  val h5 : ?atts:(string * string) list -> Html.html -> Html.html
  val h6 : ?atts:(string * string) list -> Html.html -> Html.html
  val pre : ?atts:(string * string) list -> Html.html -> Html.html
  val string_for_html : string -> Html.html
  val justify_string_for_html : int -> string -> Html.html
  val text_area : string -> Html.html
  val justify_text_area : int -> string -> Html.html
  val tag : string -> ?atts:(string * string) list -> Html.html -> Html.html
  val link : string -> ?target:string -> Html.html -> Html.html
  val br : Html.html
  val p : ?atts:(string * string) list -> Html.html -> Html.html
  val i : ?atts:(string * string) list -> Html.html -> Html.html
  val b : ?atts:(string * string) list -> Html.html -> Html.html
  val col : ?span:int -> ?cl:string -> ?w:string -> unit -> Html.html
  val tr : ?atts:(string * string) list -> Html.html list -> Html.html
  val td : ?atts:(string * string) list -> Html.html -> Html.html
  val table :
    ?w:string -> ?atts:(string * string) list -> Html.html list -> Html.html
  val table_100 : ?atts:(string * string) list -> Html.html list -> Html.html
  val ul : ?atts:(string * string) list -> Html.html list -> Html.html
  val ul_li : Html.html list -> Html.html
  val ol : ?atts:(string * string) list -> Html.html list -> Html.html
  val ol_li : Html.html list -> Html.html
  val span :
    ?cl:string -> ?atts:(string * string) list -> Html.html -> Html.html
  val div :
    ?cl:string -> ?atts:(string * string) list -> Html.html -> Html.html
  val seq : Html.html list -> Html.html
  val concat : ?sep:Html.html -> Html.html list -> Html.html
  type css_names = {
    section_table : string;
    section_title : string;
    subsection_table : string;
    subsection_title : string;
    elements : string;
    row : string array;
  }
  val css_names : unit -> Html.css_names
  val set_css_names : Html.css_names -> unit
  val css_code : Html.css_names -> string
  val frame_table :
    ?css:Html.css_names ->
    ?title:string -> ?width:string -> Html.html list -> Html.html
  val list_in_table :
    ?css:Html.css_names ->
    ?sep:bool ->
    ?width:string ->
    (Html.html option * string option * string option * ('-> Html.html))
    list -> 'a list -> Html.html
  val double_list_in_table :
    ?css:Html.css_names ->
    ?width:string ->
    ?title:string ->
    ((string * int) * (('-> (string * Html.html) list) * 'a list)) list ->
    Html.html
  val tree : 'a list -> ('-> Html.html) -> ('-> 'a list) -> Html.html
  val tree_in_table :
    ?css:Html.css_names ->
    ?width:string ->
    'a list -> ('-> Html.html) -> ('-> 'a list) -> Html.html
  val page :
    ?typ:string ->
    ?style:string -> ?more_head:string -> string -> Html.html -> Html.html
  type form_method = Get | Post | Post_multipart
  val form :
    ?atts:(string * string) list ->
    ?met:Html.form_method -> string -> Html.html -> Html.html
  val submit_button : string -> Html.html
  val reset_button : string -> Html.html
  val select :
    ?atts:(string * string) list ->
    string -> (string * string) list -> string -> Html.html
  val textarea :
    ?atts:(string * string) list ->
    ?cols:int -> ?rows:int -> ?value:string -> string -> Html.html
  type input_type =
      Text
    | Checkbox
    | Radio
    | Password
    | Submit
    | Reset
    | Hidden
    | File
  val input :
    Html.input_type ->
    ?atts:(string * string) list ->
    ?size:string -> ?checked:bool -> ?value:string -> string -> Html.html
end