`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 option_elt
type option_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_full_string_uri :
?https:bool ->
service:('a, unit, [< Eliom_services.get_service_kind ],
[< Eliom_services.suff ], 'b, unit,
[< Eliom_services.registrable ])
Eliom_services.service ->
sp:Eliom_sessions.server_params ->
?hostname:string -> ?port:int -> ?fragment:string -> 'a -> string
val make_full_uri :
?https:bool ->
service:('a, unit, [< Eliom_services.get_service_kind ],
[< Eliom_services.suff ], 'b, unit,
[< Eliom_services.registrable ])
Eliom_services.service ->
sp:Eliom_sessions.server_params ->
?hostname:string ->
?port:int -> ?fragment:string -> 'a -> Eliom_mkforms.ELIOMFORMSIG.uri
val make_string_uri :
?https:bool ->
service:('a, unit, [< Eliom_services.get_service_kind ],
[< Eliom_services.suff ], 'b, unit,
[< Eliom_services.registrable ])
Eliom_services.service ->
sp:Eliom_sessions.server_params ->
?hostname:string -> ?port:int -> ?fragment:string -> 'a -> string
val make_uri :
?https:bool ->
service:('a, unit, [< Eliom_services.get_service_kind ],
[< Eliom_services.suff ], 'b, unit,
[< Eliom_services.registrable ])
Eliom_services.service ->
sp:Eliom_sessions.server_params ->
?hostname:string ->
?port:int -> ?fragment:string -> 'a -> Eliom_mkforms.ELIOMFORMSIG.uri
val a :
?https:bool ->
?a:Eliom_mkforms.ELIOMFORMSIG.a_attrib_t ->
service:('a, unit, [< Eliom_services.get_service_kind ],
[< Eliom_services.suff ], 'b, 'c,
[< Eliom_services.registrable ])
Eliom_services.service ->
sp:Eliom_sessions.server_params ->
?hostname:string ->
?port:int ->
?fragment:string ->
Eliom_mkforms.ELIOMFORMSIG.a_content_elt_list ->
'a -> Eliom_mkforms.ELIOMFORMSIG.a_elt
val css_link :
?a:Eliom_mkforms.ELIOMFORMSIG.link_attrib_t ->
uri:Eliom_mkforms.ELIOMFORMSIG.uri ->
unit -> Eliom_mkforms.ELIOMFORMSIG.link_elt
val js_script :
?a:Eliom_mkforms.ELIOMFORMSIG.script_attrib_t ->
uri:Eliom_mkforms.ELIOMFORMSIG.uri ->
unit -> Eliom_mkforms.ELIOMFORMSIG.script_elt
val get_form :
?https:bool ->
?a:Eliom_mkforms.ELIOMFORMSIG.form_attrib_t ->
service:('a, unit, [< Eliom_services.get_service_kind ],
[< Eliom_services.suff ], 'b, 'c,
[< Eliom_services.registrable ])
Eliom_services.service ->
sp:Eliom_sessions.server_params ->
?hostname:string ->
?port:int ->
?fragment:string ->
('b -> Eliom_mkforms.ELIOMFORMSIG.form_content_elt_list) ->
Eliom_mkforms.ELIOMFORMSIG.form_elt
val lwt_get_form :
?https:bool ->
?a:Eliom_mkforms.ELIOMFORMSIG.form_attrib_t ->
service:('a, unit, [< Eliom_services.get_service_kind ],
[< Eliom_services.suff ], 'b, 'c,
[< Eliom_services.registrable ])
Eliom_services.service ->
sp:Eliom_sessions.server_params ->
?hostname:string ->
?port:int ->
?fragment:string ->
('b -> Eliom_mkforms.ELIOMFORMSIG.form_content_elt_list Lwt.t) ->
Eliom_mkforms.ELIOMFORMSIG.form_elt Lwt.t
val post_form :
?https:bool ->
?a:Eliom_mkforms.ELIOMFORMSIG.form_attrib_t ->
service:('a, 'b, [< Eliom_services.post_service_kind ],
[< Eliom_services.suff ], 'c, 'd,
[< Eliom_services.registrable ])
Eliom_services.service ->
sp:Eliom_sessions.server_params ->
?hostname:string ->
?port:int ->
?fragment:string ->
?keep_get_na_params:bool ->
('d -> Eliom_mkforms.ELIOMFORMSIG.form_content_elt_list) ->
'a -> Eliom_mkforms.ELIOMFORMSIG.form_elt
val lwt_post_form :
?https:bool ->
?a:Eliom_mkforms.ELIOMFORMSIG.form_attrib_t ->
service:('a, 'b, [< Eliom_services.post_service_kind ],
[< Eliom_services.suff ], 'c, 'd,
[< Eliom_services.registrable ])
Eliom_services.service ->
sp:Eliom_sessions.server_params ->
?hostname:string ->
?port:int ->
?fragment:string ->
?keep_get_na_params:bool ->
('d -> Eliom_mkforms.ELIOMFORMSIG.form_content_elt_list Lwt.t) ->
'a -> Eliom_mkforms.ELIOMFORMSIG.form_elt Lwt.t
val int_input :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
input_type:Eliom_mkforms.ELIOMFORMSIG.input_type_t ->
?name:[< int Eliom_parameters.setoneradio ] Eliom_parameters.param_name ->
?value:int -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val int32_input :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
input_type:Eliom_mkforms.ELIOMFORMSIG.input_type_t ->
?name:[< int32 Eliom_parameters.setoneradio ] Eliom_parameters.param_name ->
?value:int32 -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val int64_input :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
input_type:Eliom_mkforms.ELIOMFORMSIG.input_type_t ->
?name:[< int64 Eliom_parameters.setoneradio ] Eliom_parameters.param_name ->
?value:int64 -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val float_input :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
input_type:Eliom_mkforms.ELIOMFORMSIG.input_type_t ->
?name:[< float Eliom_parameters.setoneradio ] Eliom_parameters.param_name ->
?value:float -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val string_input :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
input_type:Eliom_mkforms.ELIOMFORMSIG.input_type_t ->
?name:[< string Eliom_parameters.setoneradio ]
Eliom_parameters.param_name ->
?value:string -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val user_type_input :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
input_type:Eliom_mkforms.ELIOMFORMSIG.input_type_t ->
?name:[< 'a Eliom_parameters.setoneradio ] Eliom_parameters.param_name ->
?value:'a -> ('a -> string) -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val raw_input :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
input_type:Eliom_mkforms.ELIOMFORMSIG.input_type_t ->
?name:string ->
?value:string -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val file_input :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
name:[< Ocsigen_extensions.file_info Eliom_parameters.setoneradio ]
Eliom_parameters.param_name ->
unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val image_input :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
name:[< Eliom_parameters.coordinates Eliom_parameters.oneradio ]
Eliom_parameters.param_name ->
?src:Eliom_mkforms.ELIOMFORMSIG.uri ->
unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val int_image_input :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
name:[< (int * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
Eliom_parameters.param_name ->
value:int ->
?src:Eliom_mkforms.ELIOMFORMSIG.uri ->
unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val int32_image_input :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
name:[< (int32 * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
Eliom_parameters.param_name ->
value:int32 ->
?src:Eliom_mkforms.ELIOMFORMSIG.uri ->
unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val int64_image_input :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
name:[< (int64 * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
Eliom_parameters.param_name ->
value:int64 ->
?src:Eliom_mkforms.ELIOMFORMSIG.uri ->
unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val float_image_input :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
name:[< (float * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
Eliom_parameters.param_name ->
value:float ->
?src:Eliom_mkforms.ELIOMFORMSIG.uri ->
unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val string_image_input :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
name:[< (string * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
Eliom_parameters.param_name ->
value:string ->
?src:Eliom_mkforms.ELIOMFORMSIG.uri ->
unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val user_type_image_input :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
name:[< ('a * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
Eliom_parameters.param_name ->
value:'a ->
?src:Eliom_mkforms.ELIOMFORMSIG.uri ->
('a -> string) -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val raw_image_input :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
name:string ->
value:string ->
?src:Eliom_mkforms.ELIOMFORMSIG.uri ->
unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val bool_checkbox :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
?checked:bool ->
name:[ `One of bool ] Eliom_parameters.param_name ->
unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val int_checkbox :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
?checked:bool ->
name:[ `Set of int ] Eliom_parameters.param_name ->
value:int -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val int32_checkbox :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
?checked:bool ->
name:[ `Set of int32 ] Eliom_parameters.param_name ->
value:int32 -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val int64_checkbox :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
?checked:bool ->
name:[ `Set of int64 ] Eliom_parameters.param_name ->
value:int64 -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val float_checkbox :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
?checked:bool ->
name:[ `Set of float ] Eliom_parameters.param_name ->
value:float -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val string_checkbox :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
?checked:bool ->
name:[ `Set of string ] Eliom_parameters.param_name ->
value:string -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val user_type_checkbox :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
?checked:bool ->
name:[ `Set of 'a ] Eliom_parameters.param_name ->
value:'a -> ('a -> string) -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val raw_checkbox :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
?checked:bool ->
name:string ->
value:string -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val string_radio :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
?checked:bool ->
name:[ `Radio of string ] Eliom_parameters.param_name ->
value:string -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val int_radio :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
?checked:bool ->
name:[ `Radio of int ] Eliom_parameters.param_name ->
value:int -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val int32_radio :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
?checked:bool ->
name:[ `Radio of int32 ] Eliom_parameters.param_name ->
value:int32 -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val int64_radio :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
?checked:bool ->
name:[ `Radio of int64 ] Eliom_parameters.param_name ->
value:int64 -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val float_radio :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
?checked:bool ->
name:[ `Radio of float ] Eliom_parameters.param_name ->
value:float -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val user_type_radio :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
?checked:bool ->
name:[ `Radio of 'a ] Eliom_parameters.param_name ->
value:'a -> ('a -> string) -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val raw_radio :
?a:Eliom_mkforms.ELIOMFORMSIG.input_attrib_t ->
?checked:bool ->
name:string ->
value:string -> unit -> Eliom_mkforms.ELIOMFORMSIG.input_elt
val string_button :
?a:Eliom_mkforms.ELIOMFORMSIG.button_attrib_t ->
name:[< string Eliom_parameters.setone ] Eliom_parameters.param_name ->
value:string ->
Eliom_mkforms.ELIOMFORMSIG.button_content_elt_list ->
Eliom_mkforms.ELIOMFORMSIG.button_elt
val int_button :
?a:Eliom_mkforms.ELIOMFORMSIG.button_attrib_t ->
name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
value:int ->
Eliom_mkforms.ELIOMFORMSIG.button_content_elt_list ->
Eliom_mkforms.ELIOMFORMSIG.button_elt
val int32_button :
?a:Eliom_mkforms.ELIOMFORMSIG.button_attrib_t ->
name:[< int32 Eliom_parameters.setone ] Eliom_parameters.param_name ->
value:int32 ->
Eliom_mkforms.ELIOMFORMSIG.button_content_elt_list ->
Eliom_mkforms.ELIOMFORMSIG.button_elt
val int64_button :
?a:Eliom_mkforms.ELIOMFORMSIG.button_attrib_t ->
name:[< int64 Eliom_parameters.setone ] Eliom_parameters.param_name ->
value:int64 ->
Eliom_mkforms.ELIOMFORMSIG.button_content_elt_list ->
Eliom_mkforms.ELIOMFORMSIG.button_elt
val float_button :
?a:Eliom_mkforms.ELIOMFORMSIG.button_attrib_t ->
name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
value:float ->
Eliom_mkforms.ELIOMFORMSIG.button_content_elt_list ->
Eliom_mkforms.ELIOMFORMSIG.button_elt
val user_type_button :
?a:Eliom_mkforms.ELIOMFORMSIG.button_attrib_t ->
name:[< 'a Eliom_parameters.setone ] Eliom_parameters.param_name ->
value:'a ->
('a -> string) ->
Eliom_mkforms.ELIOMFORMSIG.button_content_elt_list ->
Eliom_mkforms.ELIOMFORMSIG.button_elt
val raw_button :
?a:Eliom_mkforms.ELIOMFORMSIG.button_attrib_t ->
button_type:Eliom_mkforms.ELIOMFORMSIG.button_type_t ->
name:string ->
value:string ->
Eliom_mkforms.ELIOMFORMSIG.button_content_elt_list ->
Eliom_mkforms.ELIOMFORMSIG.button_elt
val button :
?a:Eliom_mkforms.ELIOMFORMSIG.button_attrib_t ->
button_type:Eliom_mkforms.ELIOMFORMSIG.button_type_t ->
Eliom_mkforms.ELIOMFORMSIG.button_content_elt_list ->
Eliom_mkforms.ELIOMFORMSIG.button_elt
val textarea :
?a:Eliom_mkforms.ELIOMFORMSIG.textarea_attrib_t ->
name:[< string Eliom_parameters.setoneradio ] Eliom_parameters.param_name ->
?value:Eliom_mkforms.ELIOMFORMSIG.pcdata_elt ->
rows:int -> cols:int -> unit -> Eliom_mkforms.ELIOMFORMSIG.textarea_elt
val raw_textarea :
?a:Eliom_mkforms.ELIOMFORMSIG.textarea_attrib_t ->
name:string ->
?value:Eliom_mkforms.ELIOMFORMSIG.pcdata_elt ->
rows:int -> cols:int -> unit -> Eliom_mkforms.ELIOMFORMSIG.textarea_elt
type 'a soption =
Eliom_mkforms.ELIOMFORMSIG.option_attrib_t * 'a *
Eliom_mkforms.ELIOMFORMSIG.pcdata_elt option * bool
type 'a select_opt =
Optgroup of Eliom_mkforms.ELIOMFORMSIG.optgroup_attrib_t * string *
'a Eliom_mkforms.ELIOMFORMSIG.soption *
'a Eliom_mkforms.ELIOMFORMSIG.soption list
| Option of 'a Eliom_mkforms.ELIOMFORMSIG.soption
val raw_select :
?a:Eliom_mkforms.ELIOMFORMSIG.select_attrib_t ->
name:string ->
string Eliom_mkforms.ELIOMFORMSIG.select_opt ->
string Eliom_mkforms.ELIOMFORMSIG.select_opt list ->
Eliom_mkforms.ELIOMFORMSIG.select_elt
val int_select :
?a:Eliom_mkforms.ELIOMFORMSIG.select_attrib_t ->
name:[< `One of int ] Eliom_parameters.param_name ->
int Eliom_mkforms.ELIOMFORMSIG.select_opt ->
int Eliom_mkforms.ELIOMFORMSIG.select_opt list ->
Eliom_mkforms.ELIOMFORMSIG.select_elt
val int32_select :
?a:Eliom_mkforms.ELIOMFORMSIG.select_attrib_t ->
name:[< `One of int32 ] Eliom_parameters.param_name ->
int32 Eliom_mkforms.ELIOMFORMSIG.select_opt ->
int32 Eliom_mkforms.ELIOMFORMSIG.select_opt list ->
Eliom_mkforms.ELIOMFORMSIG.select_elt
val int64_select :
?a:Eliom_mkforms.ELIOMFORMSIG.select_attrib_t ->
name:[< `One of int64 ] Eliom_parameters.param_name ->
int64 Eliom_mkforms.ELIOMFORMSIG.select_opt ->
int64 Eliom_mkforms.ELIOMFORMSIG.select_opt list ->
Eliom_mkforms.ELIOMFORMSIG.select_elt
val float_select :
?a:Eliom_mkforms.ELIOMFORMSIG.select_attrib_t ->
name:[< `One of float ] Eliom_parameters.param_name ->
float Eliom_mkforms.ELIOMFORMSIG.select_opt ->
float Eliom_mkforms.ELIOMFORMSIG.select_opt list ->
Eliom_mkforms.ELIOMFORMSIG.select_elt
val string_select :
?a:Eliom_mkforms.ELIOMFORMSIG.select_attrib_t ->
name:[< `One of string ] Eliom_parameters.param_name ->
string Eliom_mkforms.ELIOMFORMSIG.select_opt ->
string Eliom_mkforms.ELIOMFORMSIG.select_opt list ->
Eliom_mkforms.ELIOMFORMSIG.select_elt
val user_type_select :
?a:Eliom_mkforms.ELIOMFORMSIG.select_attrib_t ->
name:[< `One of 'a ] Eliom_parameters.param_name ->
'a Eliom_mkforms.ELIOMFORMSIG.select_opt ->
'a Eliom_mkforms.ELIOMFORMSIG.select_opt list ->
('a -> string) -> Eliom_mkforms.ELIOMFORMSIG.select_elt
val raw_multiple_select :
?a:Eliom_mkforms.ELIOMFORMSIG.select_attrib_t ->
name:string ->
string Eliom_mkforms.ELIOMFORMSIG.select_opt ->
string Eliom_mkforms.ELIOMFORMSIG.select_opt list ->
Eliom_mkforms.ELIOMFORMSIG.select_elt
val int_multiple_select :
?a:Eliom_mkforms.ELIOMFORMSIG.select_attrib_t ->
name:[< `Set of int ] Eliom_parameters.param_name ->
int Eliom_mkforms.ELIOMFORMSIG.select_opt ->
int Eliom_mkforms.ELIOMFORMSIG.select_opt list ->
Eliom_mkforms.ELIOMFORMSIG.select_elt
val int32_multiple_select :
?a:Eliom_mkforms.ELIOMFORMSIG.select_attrib_t ->
name:[< `Set of int32 ] Eliom_parameters.param_name ->
int32 Eliom_mkforms.ELIOMFORMSIG.select_opt ->
int32 Eliom_mkforms.ELIOMFORMSIG.select_opt list ->
Eliom_mkforms.ELIOMFORMSIG.select_elt
val int64_multiple_select :
?a:Eliom_mkforms.ELIOMFORMSIG.select_attrib_t ->
name:[< `Set of int64 ] Eliom_parameters.param_name ->
int64 Eliom_mkforms.ELIOMFORMSIG.select_opt ->
int64 Eliom_mkforms.ELIOMFORMSIG.select_opt list ->
Eliom_mkforms.ELIOMFORMSIG.select_elt
val float_multiple_select :
?a:Eliom_mkforms.ELIOMFORMSIG.select_attrib_t ->
name:[< `Set of float ] Eliom_parameters.param_name ->
float Eliom_mkforms.ELIOMFORMSIG.select_opt ->
float Eliom_mkforms.ELIOMFORMSIG.select_opt list ->
Eliom_mkforms.ELIOMFORMSIG.select_elt
val string_multiple_select :
?a:Eliom_mkforms.ELIOMFORMSIG.select_attrib_t ->
name:[< `Set of string ] Eliom_parameters.param_name ->
string Eliom_mkforms.ELIOMFORMSIG.select_opt ->
string Eliom_mkforms.ELIOMFORMSIG.select_opt list ->
Eliom_mkforms.ELIOMFORMSIG.select_elt
val user_type_multiple_select :
?a:Eliom_mkforms.ELIOMFORMSIG.select_attrib_t ->
name:[< `Set of 'a ] Eliom_parameters.param_name ->
'a Eliom_mkforms.ELIOMFORMSIG.select_opt ->
'a Eliom_mkforms.ELIOMFORMSIG.select_opt list ->
('a -> string) -> Eliom_mkforms.ELIOMFORMSIG.select_elt
end`