sig
  type 'a param
  type +'a elt
  type +'a attrib
  type uri
  val float : float Eliom_form_sigs.S.param
  val int : int Eliom_form_sigs.S.param
  val int32 : int32 Eliom_form_sigs.S.param
  val int64 : int64 Eliom_form_sigs.S.param
  val nativeint : nativeint Eliom_form_sigs.S.param
  val bool : bool Eliom_form_sigs.S.param
  val string : string Eliom_form_sigs.S.param
  val user : ('-> string) -> 'Eliom_form_sigs.S.param
  val make_post_uri_components :
    ?absolute:bool ->
    ?absolute_path:bool ->
    ?https:bool ->
    service:('get, 'post, Eliom_service.post, 'a, 'b, 'c, 'd,
             [< `WithSuffix | `WithoutSuffix ], 'e, 'f, 'g)
            Eliom_service.t ->
    ?hostname:string ->
    ?port:int ->
    ?fragment:string ->
    ?keep_nl_params:[ `All | `None | `Persistent ] ->
    ?nl_params:Eliom_parameter.nl_params_set ->
    ?keep_get_na_params:bool ->
    'get ->
    'post ->
    string * (string * Eliommod_parameters.param) list * string option *
    (string * Eliommod_parameters.param) list
  val get_form :
    ?absolute:bool ->
    ?absolute_path:bool ->
    ?https:bool ->
    ?a:[< Html_types.form_attrib ] Eliom_form_sigs.S.attrib list ->
    service:('a, unit, Eliom_service.get, 'b, 'c, 'd, 'e,
             [< `WithSuffix | `WithoutSuffix ], 'gn, 'f,
             Eliom_service.non_ocaml)
            Eliom_service.t ->
    ?hostname:string ->
    ?port:int ->
    ?fragment:string ->
    ?keep_nl_params:[ `All | `None | `Persistent ] ->
    ?nl_params:Eliom_parameter.nl_params_set ->
    ?xhr:bool ->
    ('gn -> [< Html_types.form_content ] Eliom_form_sigs.S.elt list) ->
    [> Html_types.form ] Eliom_form_sigs.S.elt
  val lwt_get_form :
    ?absolute:bool ->
    ?absolute_path:bool ->
    ?https:bool ->
    ?a:[< Html_types.form_attrib ] Eliom_form_sigs.S.attrib list ->
    service:('a, unit, Eliom_service.get, 'b, 'c, 'd, 'e,
             [< `WithSuffix | `WithoutSuffix ], 'gn, 'f,
             Eliom_service.non_ocaml)
            Eliom_service.t ->
    ?hostname:string ->
    ?port:int ->
    ?fragment:string ->
    ?keep_nl_params:[ `All | `None | `Persistent ] ->
    ?nl_params:Eliom_parameter.nl_params_set ->
    ?xhr:bool ->
    ('gn -> [< Html_types.form_content ] Eliom_form_sigs.S.elt list Lwt.t) ->
    [> Html_types.form ] Eliom_form_sigs.S.elt Lwt.t
  val post_form :
    ?absolute:bool ->
    ?absolute_path:bool ->
    ?https:bool ->
    ?a:[< Html_types.form_attrib ] Eliom_form_sigs.S.attrib list ->
    service:('get, 'a, Eliom_service.post, 'b, 'c, 'd, 'e,
             [< `WithSuffix | `WithoutSuffix ], 'f, 'pn,
             Eliom_service.non_ocaml)
            Eliom_service.t ->
    ?hostname:string ->
    ?port:int ->
    ?fragment:string ->
    ?keep_nl_params:[ `All | `None | `Persistent ] ->
    ?keep_get_na_params:bool ->
    ?nl_params:Eliom_parameter.nl_params_set ->
    ?xhr:bool ->
    ('pn -> [< Html_types.form_content ] Eliom_form_sigs.S.elt list) ->
    'get -> [> Html_types.form ] Eliom_form_sigs.S.elt
  val lwt_post_form :
    ?absolute:bool ->
    ?absolute_path:bool ->
    ?https:bool ->
    ?a:[< Html_types.form_attrib ] Eliom_form_sigs.S.attrib list ->
    service:('get, 'a, Eliom_service.post, 'b, 'c, 'd, 'e,
             [< `WithSuffix | `WithoutSuffix ], 'f, 'pn,
             Eliom_service.non_ocaml)
            Eliom_service.t ->
    ?hostname:string ->
    ?port:int ->
    ?fragment:string ->
    ?keep_nl_params:[ `All | `None | `Persistent ] ->
    ?keep_get_na_params:bool ->
    ?nl_params:Eliom_parameter.nl_params_set ->
    ?xhr:bool ->
    ('pn -> [< Html_types.form_content ] Eliom_form_sigs.S.elt list Lwt.t) ->
    'get -> [> Html_types.form ] Eliom_form_sigs.S.elt Lwt.t
  val input :
    ?a:[< Html_types.input_attrib ] Eliom_form_sigs.S.attrib list ->
    input_type:[< Html_types.input_type ] ->
    ?name:[< 'Eliom_parameter.setoneradio ] Eliom_parameter.param_name ->
    ?value:'->
    'Eliom_form_sigs.S.param -> [> Html_types.input ] Eliom_form_sigs.S.elt
  val file_input :
    ?a:[< Html_types.input_attrib ] Eliom_form_sigs.S.attrib list ->
    name:[< Eliom_lib.file_info Eliom_parameter.setoneradio ]
         Eliom_parameter.param_name ->
    unit -> [> Html_types.input ] Eliom_form_sigs.S.elt
  val image_input :
    ?a:[< Html_types.input_attrib ] Eliom_form_sigs.S.attrib list ->
    name:[< Eliom_parameter.coordinates Eliom_parameter.oneradio ]
         Eliom_parameter.param_name ->
    ?src:Eliom_form_sigs.S.uri ->
    unit -> [> Html_types.input ] Eliom_form_sigs.S.elt
  val checkbox :
    ?a:[< Html_types.input_attrib ] Eliom_form_sigs.S.attrib list ->
    ?checked:bool ->
    name:[ `Set of 'a ] Eliom_parameter.param_name ->
    value:'->
    'Eliom_form_sigs.S.param -> [> Html_types.input ] Eliom_form_sigs.S.elt
  val bool_checkbox_one :
    ?a:[< Html_types.input_attrib ] Eliom_form_sigs.S.attrib list ->
    ?checked:bool ->
    name:[ `One of bool ] Eliom_parameter.param_name ->
    unit -> [> Html_types.input ] Eliom_form_sigs.S.elt
  val radio :
    ?a:[< Html_types.input_attrib ] Eliom_form_sigs.S.attrib list ->
    ?checked:bool ->
    name:[ `Radio of 'a ] Eliom_parameter.param_name ->
    value:'->
    'Eliom_form_sigs.S.param -> [> Html_types.input ] Eliom_form_sigs.S.elt
  val string_radio_required :
    ?a:[< Html_types.input_attrib ] Eliom_form_sigs.S.attrib list ->
    ?checked:bool ->
    name:[ `One of string ] Eliom_parameter.param_name ->
    value:string -> unit -> [> Html_types.input ] Eliom_form_sigs.S.elt
  val button :
    ?a:[< Html_types.button_attrib ] Eliom_form_sigs.S.attrib list ->
    button_type:[< Eliom_form_sigs.button_type ] ->
    name:[< 'Eliom_parameter.setone ] Eliom_parameter.param_name ->
    value:'->
    'Eliom_form_sigs.S.param ->
    Html_types.button_content Eliom_form_sigs.S.elt list ->
    [> Html_types.button ] Eliom_form_sigs.S.elt
  val button_no_value :
    ?a:[< Html_types.button_attrib ] Eliom_form_sigs.S.attrib list ->
    button_type:[< Eliom_form_sigs.button_type ] ->
    Html_types.button_content Eliom_form_sigs.S.elt list ->
    [> Html_types.button ] Eliom_form_sigs.S.elt
  val textarea :
    ?a:[< Html_types.textarea_attrib ] Eliom_form_sigs.S.attrib list ->
    name:[< string Eliom_parameter.setoneradio ] Eliom_parameter.param_name ->
    ?value:string -> unit -> [> Html_types.textarea ] Eliom_form_sigs.S.elt
  type 'a soption =
      Html_types.option_attrib Eliom_form_sigs.S.attrib list * 'a *
      Html_types.pcdata Eliom_form_sigs.S.elt option * bool
  type 'a select_opt =
      Optgroup of
        [ `Accesskey
        | `Aria
        | `Class
        | `Contenteditable
        | `Contextmenu
        | `Dir
        | `Disabled
        | `Draggable
        | `Hidden
        | `Id
        | `Lang
        | `OnAbort
        | `OnBlur
        | `OnCanPlay
        | `OnCanPlayThrough
        | `OnChange
        | `OnClick
        | `OnContextMenu
        | `OnDblClick
        | `OnDrag
        | `OnDragEnd
        | `OnDragEnter
        | `OnDragLeave
        | `OnDragOver
        | `OnDragStart
        | `OnDrop
        | `OnDurationChange
        | `OnEmptied
        | `OnEnded
        | `OnError
        | `OnFocus
        | `OnFormChange
        | `OnFormInput
        | `OnInput
        | `OnInvalid
        | `OnKeyDown
        | `OnKeyPress
        | `OnKeyUp
        | `OnLoad
        | `OnLoadStart
        | `OnLoadedData
        | `OnLoadedMetaData
        | `OnMouseDown
        | `OnMouseMove
        | `OnMouseOut
        | `OnMouseOver
        | `OnMouseUp
        | `OnMouseWheel
        | `OnPause
        | `OnPlay
        | `OnPlaying
        | `OnProgress
        | `OnRateChange
        | `OnReadyStateChange
        | `OnScroll
        | `OnSeeked
        | `OnSeeking
        | `OnSelect
        | `OnShow
        | `OnStalled
        | `OnSubmit
        | `OnSuspend
        | `OnTimeUpdate
        | `OnTouchCancel
        | `OnTouchEnd
        | `OnTouchMove
        | `OnTouchStart
        | `OnVolumeChange
        | `OnWaiting
        | `Role
        | `Spellcheck
        | `Style_Attr
        | `Tabindex
        | `Title
        | `Translate
        | `User_data
        | `XML_lang
        | `XMLns ] Eliom_form_sigs.S.attrib list * string *
        'Eliom_form_sigs.S.soption * 'Eliom_form_sigs.S.soption list
    | Option of 'Eliom_form_sigs.S.soption
  val select :
    ?a:[< Html_types.select_attrib ] Eliom_form_sigs.S.attrib list ->
    ?required:Html_types.pcdata Eliom_form_sigs.S.elt ->
    name:[ `One of 'a ] Eliom_parameter.param_name ->
    'Eliom_form_sigs.S.param ->
    'Eliom_form_sigs.S.select_opt ->
    'Eliom_form_sigs.S.select_opt list ->
    [> Html_types.select ] Eliom_form_sigs.S.elt
  val multiple_select :
    ?a:[< Html_types.select_attrib ] Eliom_form_sigs.S.attrib list ->
    ?required:Html_types.pcdata Eliom_form_sigs.S.elt ->
    name:[ `Set of 'a ] Eliom_parameter.param_name ->
    'Eliom_form_sigs.S.param ->
    'Eliom_form_sigs.S.select_opt ->
    'Eliom_form_sigs.S.select_opt list ->
    [> Html_types.select ] Eliom_form_sigs.S.elt
end