sig
  module type FORMCREATE =
    sig
      type form_content_elt
      type form_content_elt_list
      type form_elt
      type a_content_elt
      type a_content_elt_list
      type a_elt
      type a_elt_list
      type div_content_elt
      type div_content_elt_list
      type uri
      type link_elt
      type script_elt
      type textarea_elt
      type input_elt
      type pcdata_elt
      type select_elt
      type select_content_elt
      type select_content_elt_list
      type option_elt
      type option_elt_list
      type button_elt
      type button_content_elt
      type button_content_elt_list
      type a_attrib_t
      type form_attrib_t
      type input_attrib_t
      type textarea_attrib_t
      type select_attrib_t
      type link_attrib_t
      type script_attrib_t
      type optgroup_attrib_t
      type option_attrib_t
      type button_attrib_t
      type input_type_t
      type button_type_t
      val hidden : Eliommkforms.FORMCREATE.input_type_t
      val checkbox : Eliommkforms.FORMCREATE.input_type_t
      val radio : Eliommkforms.FORMCREATE.input_type_t
      val submit : Eliommkforms.FORMCREATE.input_type_t
      val file : Eliommkforms.FORMCREATE.input_type_t
      val image : Eliommkforms.FORMCREATE.input_type_t
      val buttonsubmit : Eliommkforms.FORMCREATE.button_type_t
      val empty_seq : Eliommkforms.FORMCREATE.form_content_elt_list
      val cons_form :
        Eliommkforms.FORMCREATE.form_content_elt ->
        Eliommkforms.FORMCREATE.form_content_elt_list ->
        Eliommkforms.FORMCREATE.form_content_elt_list
      val map_option :
        ('-> Eliommkforms.FORMCREATE.option_elt) ->
        'a list -> Eliommkforms.FORMCREATE.option_elt_list
      val map_optgroup :
        ('-> Eliommkforms.FORMCREATE.select_content_elt) ->
        '->
        'a list ->
        Eliommkforms.FORMCREATE.select_content_elt *
        Eliommkforms.FORMCREATE.select_content_elt_list
      val select_content_of_option :
        Eliommkforms.FORMCREATE.option_elt ->
        Eliommkforms.FORMCREATE.select_content_elt
      val make_pcdata : string -> Eliommkforms.FORMCREATE.pcdata_elt
      val make_a :
        ?a:Eliommkforms.FORMCREATE.a_attrib_t ->
        href:string ->
        Eliommkforms.FORMCREATE.a_content_elt_list ->
        Eliommkforms.FORMCREATE.a_elt
      val make_get_form :
        ?a:Eliommkforms.FORMCREATE.form_attrib_t ->
        action:string ->
        Eliommkforms.FORMCREATE.form_content_elt ->
        Eliommkforms.FORMCREATE.form_content_elt_list ->
        Eliommkforms.FORMCREATE.form_elt
      val make_post_form :
        ?a:Eliommkforms.FORMCREATE.form_attrib_t ->
        action:string ->
        ?id:string ->
        ?inline:bool ->
        Eliommkforms.FORMCREATE.form_content_elt ->
        Eliommkforms.FORMCREATE.form_content_elt_list ->
        Eliommkforms.FORMCREATE.form_elt
      val make_hidden_field :
        Eliommkforms.FORMCREATE.input_elt ->
        Eliommkforms.FORMCREATE.form_content_elt
      val remove_first :
        Eliommkforms.FORMCREATE.form_content_elt_list ->
        Eliommkforms.FORMCREATE.form_content_elt *
        Eliommkforms.FORMCREATE.form_content_elt_list
      val make_input :
        ?a:Eliommkforms.FORMCREATE.input_attrib_t ->
        ?checked:bool ->
        typ:Eliommkforms.FORMCREATE.input_type_t ->
        ?name:string ->
        ?src:Eliommkforms.FORMCREATE.uri ->
        ?value:string -> unit -> Eliommkforms.FORMCREATE.input_elt
      val make_button :
        ?a:Eliommkforms.FORMCREATE.button_attrib_t ->
        button_type:Eliommkforms.FORMCREATE.button_type_t ->
        ?name:string ->
        ?value:string ->
        Eliommkforms.FORMCREATE.button_content_elt_list ->
        Eliommkforms.FORMCREATE.button_elt
      val make_textarea :
        ?a:Eliommkforms.FORMCREATE.textarea_attrib_t ->
        name:string ->
        ?value:Eliommkforms.FORMCREATE.pcdata_elt ->
        rows:int -> cols:int -> unit -> Eliommkforms.FORMCREATE.textarea_elt
      val make_select :
        ?a:Eliommkforms.FORMCREATE.select_attrib_t ->
        multiple:bool ->
        name:string ->
        Eliommkforms.FORMCREATE.select_content_elt ->
        Eliommkforms.FORMCREATE.select_content_elt_list ->
        Eliommkforms.FORMCREATE.select_elt
      val make_option :
        ?a:Eliommkforms.FORMCREATE.option_attrib_t ->
        selected:bool ->
        ?value:string ->
        Eliommkforms.FORMCREATE.pcdata_elt ->
        Eliommkforms.FORMCREATE.option_elt
      val make_optgroup :
        ?a:Eliommkforms.FORMCREATE.optgroup_attrib_t ->
        label:string ->
        Eliommkforms.FORMCREATE.option_elt ->
        Eliommkforms.FORMCREATE.option_elt_list ->
        Eliommkforms.FORMCREATE.select_content_elt
      val uri_of_string : string -> Eliommkforms.FORMCREATE.uri
      val make_css_link :
        ?a:Eliommkforms.FORMCREATE.link_attrib_t ->
        uri:Eliommkforms.FORMCREATE.uri ->
        unit -> Eliommkforms.FORMCREATE.link_elt
      val make_js_script :
        ?a:Eliommkforms.FORMCREATE.script_attrib_t ->
        uri:Eliommkforms.FORMCREATE.uri ->
        unit -> Eliommkforms.FORMCREATE.script_elt
    end
  module type ELIOMFORMSIG =
    sig
      type form_content_elt
      type form_content_elt_list
      type form_elt
      type a_content_elt
      type a_content_elt_list
      type a_elt
      type a_elt_list
      type div_content_elt
      type div_content_elt_list
      type uri
      type link_elt
      type script_elt
      type textarea_elt
      type input_elt
      type pcdata_elt
      type select_elt
      type select_content_elt
      type select_content_elt_list
      type button_elt
      type button_content_elt
      type button_content_elt_list
      type a_attrib_t
      type form_attrib_t
      type input_attrib_t
      type textarea_attrib_t
      type select_attrib_t
      type link_attrib_t
      type script_attrib_t
      type optgroup_attrib_t
      type option_attrib_t
      type button_attrib_t
      type input_type_t
      type button_type_t
      val make_string_uri :
        service:('a, unit, [< Eliomservices.get_service_kind ],
                 [< Eliomservices.suff ], 'b, unit,
                 [< Eliomservices.registrable ])
                Eliomservices.service ->
        sp:Eliomsessions.server_params -> ?fragment:string -> '-> string
      val make_uri :
        service:('a, unit, [< Eliomservices.get_service_kind ],
                 [< Eliomservices.suff ], 'b, unit,
                 [< Eliomservices.registrable ])
                Eliomservices.service ->
        sp:Eliomsessions.server_params ->
        ?fragment:string -> '-> Eliommkforms.ELIOMFORMSIG.uri
      val a :
        ?a:Eliommkforms.ELIOMFORMSIG.a_attrib_t ->
        service:('a, unit, [< Eliomservices.get_service_kind ],
                 [< Eliomservices.suff ], 'b, 'c,
                 [< Eliomservices.registrable ])
                Eliomservices.service ->
        sp:Eliomsessions.server_params ->
        ?fragment:string ->
        Eliommkforms.ELIOMFORMSIG.a_content_elt_list ->
        '-> Eliommkforms.ELIOMFORMSIG.a_elt
      val css_link :
        ?a:Eliommkforms.ELIOMFORMSIG.link_attrib_t ->
        uri:Eliommkforms.ELIOMFORMSIG.uri ->
        unit -> Eliommkforms.ELIOMFORMSIG.link_elt
      val js_script :
        ?a:Eliommkforms.ELIOMFORMSIG.script_attrib_t ->
        uri:Eliommkforms.ELIOMFORMSIG.uri ->
        unit -> Eliommkforms.ELIOMFORMSIG.script_elt
      val get_form :
        ?a:Eliommkforms.ELIOMFORMSIG.form_attrib_t ->
        service:('a, unit, [< Eliomservices.get_service_kind ],
                 [< Eliomservices.suff ], 'b, 'c,
                 [< Eliomservices.registrable ])
                Eliomservices.service ->
        sp:Eliomsessions.server_params ->
        ?fragment:string ->
        ('-> Eliommkforms.ELIOMFORMSIG.form_content_elt_list) ->
        Eliommkforms.ELIOMFORMSIG.form_elt
      val post_form :
        ?a:Eliommkforms.ELIOMFORMSIG.form_attrib_t ->
        service:('a, 'b, [< Eliomservices.post_service_kind ],
                 [< Eliomservices.suff ], 'c, 'd,
                 [< Eliomservices.registrable ])
                Eliomservices.service ->
        sp:Eliomsessions.server_params ->
        ?fragment:string ->
        ('-> Eliommkforms.ELIOMFORMSIG.form_content_elt_list) ->
        '-> Eliommkforms.ELIOMFORMSIG.form_elt
      val int_input :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        input_type:Eliommkforms.ELIOMFORMSIG.input_type_t ->
        ?name:[< int Eliomparameters.setoneopt ] Eliomparameters.param_name ->
        ?value:int -> unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val float_input :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        input_type:Eliommkforms.ELIOMFORMSIG.input_type_t ->
        ?name:[< float Eliomparameters.setoneopt ] Eliomparameters.param_name ->
        ?value:float -> unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val string_input :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        input_type:Eliommkforms.ELIOMFORMSIG.input_type_t ->
        ?name:[< string Eliomparameters.setoneopt ]
              Eliomparameters.param_name ->
        ?value:string -> unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val user_type_input :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        input_type:Eliommkforms.ELIOMFORMSIG.input_type_t ->
        ?name:[< 'Eliomparameters.setoneopt ] Eliomparameters.param_name ->
        ?value:'-> ('-> string) -> Eliommkforms.ELIOMFORMSIG.input_elt
      val raw_input :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        input_type:Eliommkforms.ELIOMFORMSIG.input_type_t ->
        ?name:string ->
        ?value:string -> unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val file_input :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        name:[< Extensions.file_info Eliomparameters.setoneopt ]
             Eliomparameters.param_name ->
        unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val image_input :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        name:[< Eliomparameters.coordinates Eliomparameters.oneopt ]
             Eliomparameters.param_name ->
        ?src:Eliommkforms.ELIOMFORMSIG.uri ->
        unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val int_image_input :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        name:[< (int * Eliomparameters.coordinates) Eliomparameters.oneopt ]
             Eliomparameters.param_name ->
        value:int ->
        ?src:Eliommkforms.ELIOMFORMSIG.uri ->
        unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val float_image_input :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        name:[< (float * Eliomparameters.coordinates) Eliomparameters.oneopt ]
             Eliomparameters.param_name ->
        value:float ->
        ?src:Eliommkforms.ELIOMFORMSIG.uri ->
        unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val string_image_input :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        name:[< (string * Eliomparameters.coordinates) Eliomparameters.oneopt ]
             Eliomparameters.param_name ->
        value:string ->
        ?src:Eliommkforms.ELIOMFORMSIG.uri ->
        unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val user_type_image_input :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        name:[< ('a * Eliomparameters.coordinates) Eliomparameters.oneopt ]
             Eliomparameters.param_name ->
        value:'->
        ?src:Eliommkforms.ELIOMFORMSIG.uri ->
        ('-> string) -> Eliommkforms.ELIOMFORMSIG.input_elt
      val raw_image_input :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        name:string ->
        value:string ->
        ?src:Eliommkforms.ELIOMFORMSIG.uri ->
        unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val bool_checkbox :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        ?checked:bool ->
        name:[ `One of bool ] Eliomparameters.param_name ->
        unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val int_checkbox :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of int ] Eliomparameters.param_name ->
        value:int -> unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val float_checkbox :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of float ] Eliomparameters.param_name ->
        value:float -> unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val string_checkbox :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of string ] Eliomparameters.param_name ->
        value:string -> unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val user_type_checkbox :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of 'a ] Eliomparameters.param_name ->
        value:'-> ('-> string) -> Eliommkforms.ELIOMFORMSIG.input_elt
      val raw_checkbox :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        ?checked:bool ->
        name:string ->
        value:string -> unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val string_radio :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of string ] Eliomparameters.param_name ->
        value:string -> unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val int_radio :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of int ] Eliomparameters.param_name ->
        value:int -> unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val float_radio :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of float ] Eliomparameters.param_name ->
        value:float -> unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val user_type_radio :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of 'a ] Eliomparameters.param_name ->
        value:'-> ('-> string) -> Eliommkforms.ELIOMFORMSIG.input_elt
      val raw_radio :
        ?a:Eliommkforms.ELIOMFORMSIG.input_attrib_t ->
        ?checked:bool ->
        name:string ->
        value:string -> unit -> Eliommkforms.ELIOMFORMSIG.input_elt
      val string_button :
        ?a:Eliommkforms.ELIOMFORMSIG.button_attrib_t ->
        name:[< string Eliomparameters.setone ] Eliomparameters.param_name ->
        value:string ->
        Eliommkforms.ELIOMFORMSIG.button_content_elt_list ->
        Eliommkforms.ELIOMFORMSIG.button_elt
      val int_button :
        ?a:Eliommkforms.ELIOMFORMSIG.button_attrib_t ->
        name:[< int Eliomparameters.setone ] Eliomparameters.param_name ->
        value:int ->
        Eliommkforms.ELIOMFORMSIG.button_content_elt_list ->
        Eliommkforms.ELIOMFORMSIG.button_elt
      val float_button :
        ?a:Eliommkforms.ELIOMFORMSIG.button_attrib_t ->
        name:[< float Eliomparameters.setone ] Eliomparameters.param_name ->
        value:float ->
        Eliommkforms.ELIOMFORMSIG.button_content_elt_list ->
        Eliommkforms.ELIOMFORMSIG.button_elt
      val user_type_button :
        ?a:Eliommkforms.ELIOMFORMSIG.button_attrib_t ->
        name:[< 'Eliomparameters.setone ] Eliomparameters.param_name ->
        value:'->
        ('-> string) ->
        Eliommkforms.ELIOMFORMSIG.button_content_elt_list ->
        Eliommkforms.ELIOMFORMSIG.button_elt
      val raw_button :
        ?a:Eliommkforms.ELIOMFORMSIG.button_attrib_t ->
        button_type:Eliommkforms.ELIOMFORMSIG.button_type_t ->
        name:string ->
        value:string ->
        Eliommkforms.ELIOMFORMSIG.button_content_elt_list ->
        Eliommkforms.ELIOMFORMSIG.button_elt
      val button :
        ?a:Eliommkforms.ELIOMFORMSIG.button_attrib_t ->
        button_type:Eliommkforms.ELIOMFORMSIG.button_type_t ->
        Eliommkforms.ELIOMFORMSIG.button_content_elt_list ->
        Eliommkforms.ELIOMFORMSIG.button_elt
      val textarea :
        ?a:Eliommkforms.ELIOMFORMSIG.textarea_attrib_t ->
        name:[< string Eliomparameters.setoneopt ] Eliomparameters.param_name ->
        ?value:Eliommkforms.ELIOMFORMSIG.pcdata_elt ->
        rows:int ->
        cols:int -> unit -> Eliommkforms.ELIOMFORMSIG.textarea_elt
      val raw_textarea :
        ?a:Eliommkforms.ELIOMFORMSIG.textarea_attrib_t ->
        name:string ->
        ?value:Eliommkforms.ELIOMFORMSIG.pcdata_elt ->
        rows:int ->
        cols:int -> unit -> Eliommkforms.ELIOMFORMSIG.textarea_elt
      type 'a soption =
          Eliommkforms.ELIOMFORMSIG.option_attrib_t * 'a *
          Eliommkforms.ELIOMFORMSIG.pcdata_elt option * bool
      type 'a select_opt =
          Optgroup of Eliommkforms.ELIOMFORMSIG.optgroup_attrib_t * string *
            'Eliommkforms.ELIOMFORMSIG.soption *
            'Eliommkforms.ELIOMFORMSIG.soption list
        | Option of 'Eliommkforms.ELIOMFORMSIG.soption
      val raw_select :
        ?a:Eliommkforms.ELIOMFORMSIG.select_attrib_t ->
        name:string ->
        string Eliommkforms.ELIOMFORMSIG.select_opt ->
        string Eliommkforms.ELIOMFORMSIG.select_opt list ->
        Eliommkforms.ELIOMFORMSIG.select_elt
      val int_select :
        ?a:Eliommkforms.ELIOMFORMSIG.select_attrib_t ->
        name:[< `One of int ] Eliomparameters.param_name ->
        int Eliommkforms.ELIOMFORMSIG.select_opt ->
        int Eliommkforms.ELIOMFORMSIG.select_opt list ->
        Eliommkforms.ELIOMFORMSIG.select_elt
      val float_select :
        ?a:Eliommkforms.ELIOMFORMSIG.select_attrib_t ->
        name:[< `One of float ] Eliomparameters.param_name ->
        float Eliommkforms.ELIOMFORMSIG.select_opt ->
        float Eliommkforms.ELIOMFORMSIG.select_opt list ->
        Eliommkforms.ELIOMFORMSIG.select_elt
      val string_select :
        ?a:Eliommkforms.ELIOMFORMSIG.select_attrib_t ->
        name:[< `One of string ] Eliomparameters.param_name ->
        string Eliommkforms.ELIOMFORMSIG.select_opt ->
        string Eliommkforms.ELIOMFORMSIG.select_opt list ->
        Eliommkforms.ELIOMFORMSIG.select_elt
      val user_type_select :
        ?a:Eliommkforms.ELIOMFORMSIG.select_attrib_t ->
        name:[< `One of 'a ] Eliomparameters.param_name ->
        'Eliommkforms.ELIOMFORMSIG.select_opt ->
        'Eliommkforms.ELIOMFORMSIG.select_opt list ->
        ('-> string) -> Eliommkforms.ELIOMFORMSIG.select_elt
      val raw_multiple_select :
        ?a:Eliommkforms.ELIOMFORMSIG.select_attrib_t ->
        name:string ->
        string Eliommkforms.ELIOMFORMSIG.select_opt ->
        string Eliommkforms.ELIOMFORMSIG.select_opt list ->
        Eliommkforms.ELIOMFORMSIG.select_elt
      val int_multiple_select :
        ?a:Eliommkforms.ELIOMFORMSIG.select_attrib_t ->
        name:[< `Set of int ] Eliomparameters.param_name ->
        int Eliommkforms.ELIOMFORMSIG.select_opt ->
        int Eliommkforms.ELIOMFORMSIG.select_opt list ->
        Eliommkforms.ELIOMFORMSIG.select_elt
      val float_multiple_select :
        ?a:Eliommkforms.ELIOMFORMSIG.select_attrib_t ->
        name:[< `Set of float ] Eliomparameters.param_name ->
        float Eliommkforms.ELIOMFORMSIG.select_opt ->
        float Eliommkforms.ELIOMFORMSIG.select_opt list ->
        Eliommkforms.ELIOMFORMSIG.select_elt
      val string_multiple_select :
        ?a:Eliommkforms.ELIOMFORMSIG.select_attrib_t ->
        name:[< `Set of string ] Eliomparameters.param_name ->
        string Eliommkforms.ELIOMFORMSIG.select_opt ->
        string Eliommkforms.ELIOMFORMSIG.select_opt list ->
        Eliommkforms.ELIOMFORMSIG.select_elt
      val user_type_multiple_select :
        ?a:Eliommkforms.ELIOMFORMSIG.select_attrib_t ->
        name:[< `Set of 'a ] Eliomparameters.param_name ->
        'Eliommkforms.ELIOMFORMSIG.select_opt ->
        'Eliommkforms.ELIOMFORMSIG.select_opt list ->
        ('-> string) -> Eliommkforms.ELIOMFORMSIG.select_elt
    end
  module MakeForms :
    functor (Pages : FORMCREATE->
      sig
        type form_content_elt = Pages.form_content_elt
        type form_content_elt_list = Pages.form_content_elt_list
        type form_elt = Pages.form_elt
        type a_content_elt = Pages.a_content_elt
        type a_content_elt_list = Pages.a_content_elt_list
        type a_elt = Pages.a_elt
        type a_elt_list = Pages.a_elt_list
        type div_content_elt = Pages.div_content_elt
        type div_content_elt_list = Pages.div_content_elt_list
        type uri = Pages.uri
        type link_elt = Pages.link_elt
        type script_elt = Pages.script_elt
        type textarea_elt = Pages.textarea_elt
        type input_elt = Pages.input_elt
        type pcdata_elt = Pages.pcdata_elt
        type select_elt = Pages.select_elt
        type select_content_elt
        type select_content_elt_list
        type button_elt = Pages.button_elt
        type button_content_elt = Pages.button_content_elt
        type button_content_elt_list = Pages.button_content_elt_list
        type a_attrib_t = Pages.a_attrib_t
        type form_attrib_t = Pages.form_attrib_t
        type input_attrib_t = Pages.input_attrib_t
        type textarea_attrib_t = Pages.textarea_attrib_t
        type select_attrib_t = Pages.select_attrib_t
        type link_attrib_t = Pages.link_attrib_t
        type script_attrib_t = Pages.script_attrib_t
        type optgroup_attrib_t = Pages.optgroup_attrib_t
        type option_attrib_t = Pages.option_attrib_t
        type button_attrib_t = Pages.button_attrib_t
        type input_type_t = Pages.input_type_t
        type button_type_t = Pages.button_type_t
        val make_string_uri :
          service:('a, unit, [< Eliomservices.get_service_kind ],
                   [< Eliomservices.suff ], 'b, unit,
                   [< Eliomservices.registrable ])
                  Eliomservices.service ->
          sp:Eliomsessions.server_params -> ?fragment:string -> '-> string
        val make_uri :
          service:('a, unit, [< Eliomservices.get_service_kind ],
                   [< Eliomservices.suff ], 'b, unit,
                   [< Eliomservices.registrable ])
                  Eliomservices.service ->
          sp:Eliomsessions.server_params -> ?fragment:string -> '-> uri
        val a :
          ?a:a_attrib_t ->
          service:('a, unit, [< Eliomservices.get_service_kind ],
                   [< Eliomservices.suff ], 'b, 'c,
                   [< Eliomservices.registrable ])
                  Eliomservices.service ->
          sp:Eliomsessions.server_params ->
          ?fragment:string -> a_content_elt_list -> '-> a_elt
        val css_link : ?a:link_attrib_t -> uri:uri -> unit -> link_elt
        val js_script : ?a:script_attrib_t -> uri:uri -> unit -> script_elt
        val get_form :
          ?a:form_attrib_t ->
          service:('a, unit, [< Eliomservices.get_service_kind ],
                   [< Eliomservices.suff ], 'b, 'c,
                   [< Eliomservices.registrable ])
                  Eliomservices.service ->
          sp:Eliomsessions.server_params ->
          ?fragment:string -> ('-> form_content_elt_list) -> form_elt
        val post_form :
          ?a:form_attrib_t ->
          service:('a, 'b, [< Eliomservices.post_service_kind ],
                   [< Eliomservices.suff ], 'c, 'd,
                   [< Eliomservices.registrable ])
                  Eliomservices.service ->
          sp:Eliomsessions.server_params ->
          ?fragment:string -> ('-> form_content_elt_list) -> '-> form_elt
        val int_input :
          ?a:input_attrib_t ->
          input_type:input_type_t ->
          ?name:[< int Eliomparameters.setoneopt ] Eliomparameters.param_name ->
          ?value:int -> unit -> input_elt
        val float_input :
          ?a:input_attrib_t ->
          input_type:input_type_t ->
          ?name:[< float Eliomparameters.setoneopt ]
                Eliomparameters.param_name ->
          ?value:float -> unit -> input_elt
        val string_input :
          ?a:input_attrib_t ->
          input_type:input_type_t ->
          ?name:[< string Eliomparameters.setoneopt ]
                Eliomparameters.param_name ->
          ?value:string -> unit -> input_elt
        val user_type_input :
          ?a:input_attrib_t ->
          input_type:input_type_t ->
          ?name:[< 'Eliomparameters.setoneopt ] Eliomparameters.param_name ->
          ?value:'-> ('-> string) -> input_elt
        val raw_input :
          ?a:input_attrib_t ->
          input_type:input_type_t ->
          ?name:string -> ?value:string -> unit -> input_elt
        val file_input :
          ?a:input_attrib_t ->
          name:[< Extensions.file_info Eliomparameters.setoneopt ]
               Eliomparameters.param_name ->
          unit -> input_elt
        val image_input :
          ?a:input_attrib_t ->
          name:[< Eliomparameters.coordinates Eliomparameters.oneopt ]
               Eliomparameters.param_name ->
          ?src:uri -> unit -> input_elt
        val int_image_input :
          ?a:input_attrib_t ->
          name:[< (int * Eliomparameters.coordinates) Eliomparameters.oneopt ]
               Eliomparameters.param_name ->
          value:int -> ?src:uri -> unit -> input_elt
        val float_image_input :
          ?a:input_attrib_t ->
          name:[< (float * Eliomparameters.coordinates)
                  Eliomparameters.oneopt ]
               Eliomparameters.param_name ->
          value:float -> ?src:uri -> unit -> input_elt
        val string_image_input :
          ?a:input_attrib_t ->
          name:[< (string * Eliomparameters.coordinates)
                  Eliomparameters.oneopt ]
               Eliomparameters.param_name ->
          value:string -> ?src:uri -> unit -> input_elt
        val user_type_image_input :
          ?a:input_attrib_t ->
          name:[< ('a * Eliomparameters.coordinates) Eliomparameters.oneopt ]
               Eliomparameters.param_name ->
          value:'-> ?src:uri -> ('-> string) -> input_elt
        val raw_image_input :
          ?a:input_attrib_t ->
          name:string -> value:string -> ?src:uri -> unit -> input_elt
        val bool_checkbox :
          ?a:input_attrib_t ->
          ?checked:bool ->
          name:[ `One of bool ] Eliomparameters.param_name ->
          unit -> input_elt
        val int_checkbox :
          ?a:input_attrib_t ->
          ?checked:bool ->
          name:[ `Set of int ] Eliomparameters.param_name ->
          value:int -> unit -> input_elt
        val float_checkbox :
          ?a:input_attrib_t ->
          ?checked:bool ->
          name:[ `Set of float ] Eliomparameters.param_name ->
          value:float -> unit -> input_elt
        val string_checkbox :
          ?a:input_attrib_t ->
          ?checked:bool ->
          name:[ `Set of string ] Eliomparameters.param_name ->
          value:string -> unit -> input_elt
        val user_type_checkbox :
          ?a:input_attrib_t ->
          ?checked:bool ->
          name:[ `Set of 'a ] Eliomparameters.param_name ->
          value:'-> ('-> string) -> input_elt
        val raw_checkbox :
          ?a:input_attrib_t ->
          ?checked:bool -> name:string -> value:string -> unit -> input_elt
        val string_radio :
          ?a:input_attrib_t ->
          ?checked:bool ->
          name:[ `Opt of string ] Eliomparameters.param_name ->
          value:string -> unit -> input_elt
        val int_radio :
          ?a:input_attrib_t ->
          ?checked:bool ->
          name:[ `Opt of int ] Eliomparameters.param_name ->
          value:int -> unit -> input_elt
        val float_radio :
          ?a:input_attrib_t ->
          ?checked:bool ->
          name:[ `Opt of float ] Eliomparameters.param_name ->
          value:float -> unit -> input_elt
        val user_type_radio :
          ?a:input_attrib_t ->
          ?checked:bool ->
          name:[ `Opt of 'a ] Eliomparameters.param_name ->
          value:'-> ('-> string) -> input_elt
        val raw_radio :
          ?a:input_attrib_t ->
          ?checked:bool -> name:string -> value:string -> unit -> input_elt
        val string_button :
          ?a:button_attrib_t ->
          name:[< string Eliomparameters.setone ] Eliomparameters.param_name ->
          value:string -> button_content_elt_list -> button_elt
        val int_button :
          ?a:button_attrib_t ->
          name:[< int Eliomparameters.setone ] Eliomparameters.param_name ->
          value:int -> button_content_elt_list -> button_elt
        val float_button :
          ?a:button_attrib_t ->
          name:[< float Eliomparameters.setone ] Eliomparameters.param_name ->
          value:float -> button_content_elt_list -> button_elt
        val user_type_button :
          ?a:button_attrib_t ->
          name:[< 'Eliomparameters.setone ] Eliomparameters.param_name ->
          value:'-> ('-> string) -> button_content_elt_list -> button_elt
        val raw_button :
          ?a:button_attrib_t ->
          button_type:button_type_t ->
          name:string ->
          value:string -> button_content_elt_list -> button_elt
        val button :
          ?a:button_attrib_t ->
          button_type:button_type_t -> button_content_elt_list -> button_elt
        val textarea :
          ?a:textarea_attrib_t ->
          name:[< string Eliomparameters.setoneopt ]
               Eliomparameters.param_name ->
          ?value:pcdata_elt -> rows:int -> cols:int -> unit -> textarea_elt
        val raw_textarea :
          ?a:textarea_attrib_t ->
          name:string ->
          ?value:pcdata_elt -> rows:int -> cols:int -> unit -> textarea_elt
        type 'a soption = option_attrib_t * 'a * pcdata_elt option * bool
        type 'a select_opt =
            Optgroup of optgroup_attrib_t * string * 'a soption *
              'a soption list
          | Option of 'a soption
        val raw_select :
          ?a:select_attrib_t ->
          name:string ->
          string select_opt -> string select_opt list -> select_elt
        val int_select :
          ?a:select_attrib_t ->
          name:[< `One of int ] Eliomparameters.param_name ->
          int select_opt -> int select_opt list -> select_elt
        val float_select :
          ?a:select_attrib_t ->
          name:[< `One of float ] Eliomparameters.param_name ->
          float select_opt -> float select_opt list -> select_elt
        val string_select :
          ?a:select_attrib_t ->
          name:[< `One of string ] Eliomparameters.param_name ->
          string select_opt -> string select_opt list -> select_elt
        val user_type_select :
          ?a:select_attrib_t ->
          name:[< `One of 'a ] Eliomparameters.param_name ->
          'a select_opt -> 'a select_opt list -> ('-> string) -> select_elt
        val raw_multiple_select :
          ?a:select_attrib_t ->
          name:string ->
          string select_opt -> string select_opt list -> select_elt
        val int_multiple_select :
          ?a:select_attrib_t ->
          name:[< `Set of int ] Eliomparameters.param_name ->
          int select_opt -> int select_opt list -> select_elt
        val float_multiple_select :
          ?a:select_attrib_t ->
          name:[< `Set of float ] Eliomparameters.param_name ->
          float select_opt -> float select_opt list -> select_elt
        val string_multiple_select :
          ?a:select_attrib_t ->
          name:[< `Set of string ] Eliomparameters.param_name ->
          string select_opt -> string select_opt list -> select_elt
        val user_type_multiple_select :
          ?a:select_attrib_t ->
          name:[< `Set of 'a ] Eliomparameters.param_name ->
          'a select_opt -> 'a select_opt list -> ('-> string) -> select_elt
      end
end