functor
  (T : sig
         type content
         val print : (string -> unit) -> Eliom_duce.SubXhtml.content -> unit
       end->
  sig
    type page = T.content
    type options
    val send :
      ?options:options ->
      ?cookies:Eliom_services.cookie list ->
      ?charset:string ->
      ?code:int ->
      sp:Eliom_sessions.server_params ->
      page -> Eliom_services.result_to_send Lwt.t
    val register :
      ?options:options ->
      ?sp:Eliom_sessions.server_params ->
      service:('a, 'b, [< Eliom_services.internal_service_kind ],
               [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
              Eliom_services.service ->
      ?error_handler:(Eliom_sessions.server_params ->
                      (string * exn) list -> page Lwt.t) ->
      (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
    val register_for_session :
      ?options:options ->
      ?session_name:string ->
      ?secure:bool ->
      sp:Eliom_sessions.server_params ->
      service:('a, 'b, [< Eliom_services.internal_service_kind ],
               [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
              Eliom_services.service ->
      ?error_handler:(Eliom_sessions.server_params ->
                      (string * exn) list -> page Lwt.t) ->
      (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
    val register_new_service :
      ?options:options ->
      ?sp:Eliom_sessions.server_params ->
      ?https:bool ->
      path:Ocsigen_extensions.url_path ->
      get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                 Eliom_parameters.params_type ->
      ?error_handler:(Eliom_sessions.server_params ->
                      (string * exn) list -> page Lwt.t) ->
      (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
      ('a, unit,
       [> `Attached of
            [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
       'b, 'c, unit, [> `Registrable ])
      Eliom_services.service
    val register_new_coservice :
      ?options:options ->
      ?sp:Eliom_sessions.server_params ->
      ?name:string ->
      ?max_use:int ->
      ?timeout:float ->
      ?https:bool ->
      fallback:(unit, unit,
                [ `Attached of
                    [ `Internal of [ `Service ] * [ `Get ] ]
                    Eliom_services.a_s ],
                [ `WithoutSuffix ], unit, unit,
                [< Eliom_services.registrable ])
               Eliom_services.service ->
      get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
      ?error_handler:(Eliom_sessions.server_params ->
                      (string * exn) list -> page Lwt.t) ->
      (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
      ('a, unit,
       [> `Attached of
            [> `Internal of [> `Coservice ] * [> `Get ] ] Eliom_services.a_s ],
       [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
      Eliom_services.service
    val register_new_coservice' :
      ?options:options ->
      ?sp:Eliom_sessions.server_params ->
      ?name:string ->
      ?max_use:int ->
      ?timeout:float ->
      ?https:bool ->
      get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
      ?error_handler:(Eliom_sessions.server_params ->
                      (string * exn) list -> page Lwt.t) ->
      (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
      ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
       [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
      Eliom_services.service
    val register_new_coservice_for_session :
      ?options:options ->
      ?session_name:string ->
      ?secure:bool ->
      sp:Eliom_sessions.server_params ->
      ?name:string ->
      ?max_use:int ->
      ?timeout:float ->
      ?https:bool ->
      fallback:(unit, unit,
                [ `Attached of
                    [ `Internal of [ `Service ] * [ `Get ] ]
                    Eliom_services.a_s ],
                [ `WithoutSuffix ], unit, unit,
                [< Eliom_services.registrable ])
               Eliom_services.service ->
      get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
      ?error_handler:(Eliom_sessions.server_params ->
                      (string * exn) list -> page Lwt.t) ->
      (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
      ('a, unit,
       [> `Attached of
            [> `Internal of [> `Coservice ] * [> `Get ] ] Eliom_services.a_s ],
       [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
      Eliom_services.service
    val register_new_coservice_for_session' :
      ?options:options ->
      ?session_name:string ->
      ?secure:bool ->
      sp:Eliom_sessions.server_params ->
      ?name:string ->
      ?max_use:int ->
      ?timeout:float ->
      ?https:bool ->
      get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
      ?error_handler:(Eliom_sessions.server_params ->
                      (string * exn) list -> page Lwt.t) ->
      (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
      ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
       [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
      Eliom_services.service
    val register_new_post_service :
      ?options:options ->
      ?sp:Eliom_sessions.server_params ->
      ?https:bool ->
      fallback:('a, unit,
                [ `Attached of
                    [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                    Eliom_services.a_s ],
                [< Eliom_services.suff ] as 'b, 'c, unit, [< `Registrable ])
               Eliom_services.service ->
      post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
      ?error_handler:(Eliom_sessions.server_params ->
                      (string * exn) list -> page Lwt.t) ->
      (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
      ('a, 'd,
       [> `Attached of
            [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
            Eliom_services.a_s ],
       'b, 'c, 'e, [> `Registrable ])
      Eliom_services.service
    val register_new_post_coservice :
      ?options:options ->
      ?sp:Eliom_sessions.server_params ->
      ?name:string ->
      ?max_use:int ->
      ?timeout:float ->
      ?https:bool ->
      fallback:('a, unit,
                [ `Attached of
                    [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                    Eliom_services.a_s ],
                [< Eliom_services.suff ] as 'b, 'c, unit, [< `Registrable ])
               Eliom_services.service ->
      post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
      ?error_handler:(Eliom_sessions.server_params ->
                      (string * exn) list -> page Lwt.t) ->
      (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
      ('a, 'd,
       [> `Attached of
            [> `Internal of [> `Coservice ] * [> `Post ] ] Eliom_services.a_s ],
       'b, 'c, 'e, [> `Registrable ])
      Eliom_services.service
    val register_new_post_coservice' :
      ?options:options ->
      ?sp:Eliom_sessions.server_params ->
      ?name:string ->
      ?max_use:int ->
      ?timeout:float ->
      ?keep_get_na_params:bool ->
      ?https:bool ->
      post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
      ?error_handler:(Eliom_sessions.server_params ->
                      (string * exn) list -> page Lwt.t) ->
      (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
      (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
       [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
      Eliom_services.service
    val register_new_post_coservice_for_session :
      ?options:options ->
      ?session_name:string ->
      ?secure:bool ->
      sp:Eliom_sessions.server_params ->
      ?name:string ->
      ?max_use:int ->
      ?timeout:float ->
      ?https:bool ->
      fallback:('a, unit,
                [ `Attached of
                    [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                    Eliom_services.a_s ],
                [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
               Eliom_services.service ->
      post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
      ?error_handler:(Eliom_sessions.server_params ->
                      (string * exn) list -> page Lwt.t) ->
      (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
      ('a, 'd,
       [> `Attached of
            [> `Internal of [> `Coservice ] * [> `Post ] ] Eliom_services.a_s ],
       'b, 'c, 'e, [> `Registrable ])
      Eliom_services.service
    val register_new_post_coservice_for_session' :
      ?options:options ->
      ?session_name:string ->
      ?secure:bool ->
      sp:Eliom_sessions.server_params ->
      ?name:string ->
      ?max_use:int ->
      ?timeout:float ->
      ?keep_get_na_params:bool ->
      ?https:bool ->
      post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
      ?error_handler:(Eliom_sessions.server_params ->
                      (string * exn) list -> page Lwt.t) ->
      (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
      (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
       [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
      Eliom_services.service
    module Cookies :
      sig
        type page = page * Eliom_services.cookie list
        type options
        val send :
          ?options:options ->
          ?cookies:Eliom_services.cookie list ->
          ?charset:string ->
          ?code:int ->
          sp:Eliom_sessions.server_params ->
          page -> Eliom_services.result_to_send Lwt.t
        val register :
          ?options:options ->
          ?sp:Eliom_sessions.server_params ->
          service:('a, 'b, [< Eliom_services.internal_service_kind ],
                   [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                  Eliom_services.service ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
        val register_for_session :
          ?options:options ->
          ?session_name:string ->
          ?secure:bool ->
          sp:Eliom_sessions.server_params ->
          service:('a, 'b, [< Eliom_services.internal_service_kind ],
                   [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                  Eliom_services.service ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
        val register_new_service :
          ?options:options ->
          ?sp:Eliom_sessions.server_params ->
          ?https:bool ->
          path:Ocsigen_extensions.url_path ->
          get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                     Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit,
           [> `Attached of
                [> `Internal of [> `Service ] * [> `Get ] ]
                Eliom_services.a_s ],
           'b, 'c, unit, [> `Registrable ])
          Eliom_services.service
        val register_new_coservice :
          ?options:options ->
          ?sp:Eliom_sessions.server_params ->
          ?name:string ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:(unit, unit,
                    [ `Attached of
                        [ `Internal of [ `Service ] * [ `Get ] ]
                        Eliom_services.a_s ],
                    [ `WithoutSuffix ], unit, unit,
                    [< Eliom_services.registrable ])
                   Eliom_services.service ->
          get_params:('a, [ `WithoutSuffix ], 'b)
                     Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit,
           [> `Attached of
                [> `Internal of [> `Coservice ] * [> `Get ] ]
                Eliom_services.a_s ],
           [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
          Eliom_services.service
        val register_new_coservice' :
          ?options:options ->
          ?sp:Eliom_sessions.server_params ->
          ?name:string ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          get_params:('a, [ `WithoutSuffix ], 'b)
                     Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
           [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
          Eliom_services.service
        val register_new_coservice_for_session :
          ?options:options ->
          ?session_name:string ->
          ?secure:bool ->
          sp:Eliom_sessions.server_params ->
          ?name:string ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:(unit, unit,
                    [ `Attached of
                        [ `Internal of [ `Service ] * [ `Get ] ]
                        Eliom_services.a_s ],
                    [ `WithoutSuffix ], unit, unit,
                    [< Eliom_services.registrable ])
                   Eliom_services.service ->
          get_params:('a, [ `WithoutSuffix ], 'b)
                     Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit,
           [> `Attached of
                [> `Internal of [> `Coservice ] * [> `Get ] ]
                Eliom_services.a_s ],
           [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
          Eliom_services.service
        val register_new_coservice_for_session' :
          ?options:options ->
          ?session_name:string ->
          ?secure:bool ->
          sp:Eliom_sessions.server_params ->
          ?name:string ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          get_params:('a, [ `WithoutSuffix ], 'b)
                     Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
           [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
          Eliom_services.service
        val register_new_post_service :
          ?options:options ->
          ?sp:Eliom_sessions.server_params ->
          ?https:bool ->
          fallback:('a, unit,
                    [ `Attached of
                        [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                        Eliom_services.a_s ],
                    [< Eliom_services.suff ] as 'b, 'c, unit,
                    [< `Registrable ])
                   Eliom_services.service ->
          post_params:('d, [ `WithoutSuffix ], 'e)
                      Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
          ('a, 'd,
           [> `Attached of
                [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                Eliom_services.a_s ],
           'b, 'c, 'e, [> `Registrable ])
          Eliom_services.service
        val register_new_post_coservice :
          ?options:options ->
          ?sp:Eliom_sessions.server_params ->
          ?name:string ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:('a, unit,
                    [ `Attached of
                        [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                        Eliom_services.a_s ],
                    [< Eliom_services.suff ] as 'b, 'c, unit,
                    [< `Registrable ])
                   Eliom_services.service ->
          post_params:('d, [ `WithoutSuffix ], 'e)
                      Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
          ('a, 'd,
           [> `Attached of
                [> `Internal of [> `Coservice ] * [> `Post ] ]
                Eliom_services.a_s ],
           'b, 'c, 'e, [> `Registrable ])
          Eliom_services.service
        val register_new_post_coservice' :
          ?options:options ->
          ?sp:Eliom_sessions.server_params ->
          ?name:string ->
          ?max_use:int ->
          ?timeout:float ->
          ?keep_get_na_params:bool ->
          ?https:bool ->
          post_params:('a, [ `WithoutSuffix ], 'b)
                      Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
          (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
           [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
          Eliom_services.service
        val register_new_post_coservice_for_session :
          ?options:options ->
          ?session_name:string ->
          ?secure:bool ->
          sp:Eliom_sessions.server_params ->
          ?name:string ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:('a, unit,
                    [ `Attached of
                        [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                        Eliom_services.a_s ],
                    [< Eliom_services.suff ] as 'b, 'c, unit,
                    [ `Registrable ])
                   Eliom_services.service ->
          post_params:('d, [ `WithoutSuffix ], 'e)
                      Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
          ('a, 'd,
           [> `Attached of
                [> `Internal of [> `Coservice ] * [> `Post ] ]
                Eliom_services.a_s ],
           'b, 'c, 'e, [> `Registrable ])
          Eliom_services.service
        val register_new_post_coservice_for_session' :
          ?options:options ->
          ?session_name:string ->
          ?secure:bool ->
          sp:Eliom_sessions.server_params ->
          ?name:string ->
          ?max_use:int ->
          ?timeout:float ->
          ?keep_get_na_params:bool ->
          ?https:bool ->
          post_params:('a, [ `WithoutSuffix ], 'b)
                      Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
          (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
           [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
          Eliom_services.service
      end
    type form_content_elt = Xhtmltypes_duce.form_content
    type form_content_elt_list = {{Eliom_duce.Blocks.form_content_elt_list}}
    type form_elt = Xhtmltypes_duce.form
    type a_content_elt = Xhtmltypes_duce.a_content
    type a_content_elt_list = {{Eliom_duce.Blocks.a_content_elt_list}}
    type a_elt = Xhtmltypes_duce.a
    type a_elt_list = {{Eliom_duce.Blocks.a_elt_list}}
    type div_content_elt = Xhtmltypes_duce.flows
    type div_content_elt_list = {{Eliom_duce.Blocks.div_content_elt_list}}
    type uri = string
    type link_elt = Xhtmltypes_duce.link
    type script_elt = Xhtmltypes_duce.script
    type textarea_elt = Xhtmltypes_duce.textarea
    type input_elt = Xhtmltypes_duce.input
    type pcdata_elt = {{String}}
    type select_elt = Xhtmltypes_duce.select
    type select_content_elt = Xhtmltypes_duce.select_content
    type select_content_elt_list =
        {{Eliom_duce.Blocks.select_content_elt_list}}
    type button_elt = Xhtmltypes_duce.button
    type button_content_elt = Xhtmltypes_duce.button_content
    type button_content_elt_list =
        {{Eliom_duce.Blocks.button_content_elt_list}}
    type option_elt = Xhtmltypes_duce.option
    type option_elt_list = {{Eliom_duce.Blocks.option_elt_list}}
    type a_attrib_t = Xhtmltypes_duce.a_attrs
    type form_attrib_t = {{Eliom_duce.Blocks.form_attrib_t}}
    type input_attrib_t = Xhtmltypes_duce.input_attrs
    type textarea_attrib_t = {{Eliom_duce.Blocks.textarea_attrib_t}}
    type select_attrib_t = Xhtmltypes_duce.select_attrs
    type link_attrib_t = Xhtmltypes_duce.link_attrs
    type script_attrib_t = {{Eliom_duce.Blocks.script_attrib_t}}
    type optgroup_attrib_t = {{Eliom_duce.Blocks.optgroup_attrib_t}}
    type option_attrib_t = Xhtmltypes_duce.option_attrs
    type button_attrib_t = Xhtmltypes_duce.button_attrs
    type input_type_t = Xhtmltypes_duce.input_type_values
    type button_type_t = Xhtmltypes_duce.button_type_values
    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 -> '-> 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 -> '-> 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 -> '-> 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 -> '-> uri
    val a :
      ?https:bool ->
      ?a: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 -> 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 :
      ?https:bool ->
      ?a: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 -> ('-> form_content_elt_list) -> form_elt
    val lwt_get_form :
      ?https:bool ->
      ?a: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 ->
      ('-> form_content_elt_list Lwt.t) -> form_elt Lwt.t
    val post_form :
      ?https:bool ->
      ?a: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 ->
      ('-> form_content_elt_list) -> '-> form_elt
    val lwt_post_form :
      ?https:bool ->
      ?a: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 ->
      ('-> form_content_elt_list Lwt.t) -> '-> form_elt Lwt.t
    val int_input :
      ?a:input_attrib_t ->
      input_type:input_type_t ->
      ?name:[< int Eliom_parameters.setoneradio ] Eliom_parameters.param_name ->
      ?value:int -> unit -> input_elt
    val int32_input :
      ?a:input_attrib_t ->
      input_type:input_type_t ->
      ?name:[< int32 Eliom_parameters.setoneradio ]
            Eliom_parameters.param_name ->
      ?value:int32 -> unit -> input_elt
    val int64_input :
      ?a:input_attrib_t ->
      input_type:input_type_t ->
      ?name:[< int64 Eliom_parameters.setoneradio ]
            Eliom_parameters.param_name ->
      ?value:int64 -> unit -> input_elt
    val float_input :
      ?a:input_attrib_t ->
      input_type:input_type_t ->
      ?name:[< float Eliom_parameters.setoneradio ]
            Eliom_parameters.param_name ->
      ?value:float -> unit -> input_elt
    val string_input :
      ?a:input_attrib_t ->
      input_type:input_type_t ->
      ?name:[< string Eliom_parameters.setoneradio ]
            Eliom_parameters.param_name ->
      ?value:string -> unit -> input_elt
    val user_type_input :
      ?a:input_attrib_t ->
      input_type:input_type_t ->
      ?name:[< 'Eliom_parameters.setoneradio ] Eliom_parameters.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:[< Ocsigen_extensions.file_info Eliom_parameters.setoneradio ]
           Eliom_parameters.param_name ->
      unit -> input_elt
    val image_input :
      ?a:input_attrib_t ->
      name:[< Eliom_parameters.coordinates Eliom_parameters.oneradio ]
           Eliom_parameters.param_name ->
      ?src:uri -> unit -> input_elt
    val int_image_input :
      ?a:input_attrib_t ->
      name:[< (int * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
           Eliom_parameters.param_name ->
      value:int -> ?src:uri -> unit -> input_elt
    val int32_image_input :
      ?a:input_attrib_t ->
      name:[< (int32 * Eliom_parameters.coordinates)
              Eliom_parameters.oneradio ]
           Eliom_parameters.param_name ->
      value:int32 -> ?src:uri -> unit -> input_elt
    val int64_image_input :
      ?a:input_attrib_t ->
      name:[< (int64 * Eliom_parameters.coordinates)
              Eliom_parameters.oneradio ]
           Eliom_parameters.param_name ->
      value:int64 -> ?src:uri -> unit -> input_elt
    val float_image_input :
      ?a:input_attrib_t ->
      name:[< (float * Eliom_parameters.coordinates)
              Eliom_parameters.oneradio ]
           Eliom_parameters.param_name ->
      value:float -> ?src:uri -> unit -> input_elt
    val string_image_input :
      ?a:input_attrib_t ->
      name:[< (string * Eliom_parameters.coordinates)
              Eliom_parameters.oneradio ]
           Eliom_parameters.param_name ->
      value:string -> ?src:uri -> unit -> input_elt
    val user_type_image_input :
      ?a:input_attrib_t ->
      name:[< ('a * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
           Eliom_parameters.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 ] Eliom_parameters.param_name -> unit -> input_elt
    val int_checkbox :
      ?a:input_attrib_t ->
      ?checked:bool ->
      name:[ `Set of int ] Eliom_parameters.param_name ->
      value:int -> unit -> input_elt
    val int32_checkbox :
      ?a:input_attrib_t ->
      ?checked:bool ->
      name:[ `Set of int32 ] Eliom_parameters.param_name ->
      value:int32 -> unit -> input_elt
    val int64_checkbox :
      ?a:input_attrib_t ->
      ?checked:bool ->
      name:[ `Set of int64 ] Eliom_parameters.param_name ->
      value:int64 -> unit -> input_elt
    val float_checkbox :
      ?a:input_attrib_t ->
      ?checked:bool ->
      name:[ `Set of float ] Eliom_parameters.param_name ->
      value:float -> unit -> input_elt
    val string_checkbox :
      ?a:input_attrib_t ->
      ?checked:bool ->
      name:[ `Set of string ] Eliom_parameters.param_name ->
      value:string -> unit -> input_elt
    val user_type_checkbox :
      ?a:input_attrib_t ->
      ?checked:bool ->
      name:[ `Set of 'a ] Eliom_parameters.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:[ `Radio of string ] Eliom_parameters.param_name ->
      value:string -> unit -> input_elt
    val int_radio :
      ?a:input_attrib_t ->
      ?checked:bool ->
      name:[ `Radio of int ] Eliom_parameters.param_name ->
      value:int -> unit -> input_elt
    val int32_radio :
      ?a:input_attrib_t ->
      ?checked:bool ->
      name:[ `Radio of int32 ] Eliom_parameters.param_name ->
      value:int32 -> unit -> input_elt
    val int64_radio :
      ?a:input_attrib_t ->
      ?checked:bool ->
      name:[ `Radio of int64 ] Eliom_parameters.param_name ->
      value:int64 -> unit -> input_elt
    val float_radio :
      ?a:input_attrib_t ->
      ?checked:bool ->
      name:[ `Radio of float ] Eliom_parameters.param_name ->
      value:float -> unit -> input_elt
    val user_type_radio :
      ?a:input_attrib_t ->
      ?checked:bool ->
      name:[ `Radio of 'a ] Eliom_parameters.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 Eliom_parameters.setone ] Eliom_parameters.param_name ->
      value:string -> button_content_elt_list -> button_elt
    val int_button :
      ?a:button_attrib_t ->
      name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
      value:int -> button_content_elt_list -> button_elt
    val int32_button :
      ?a:button_attrib_t ->
      name:[< int32 Eliom_parameters.setone ] Eliom_parameters.param_name ->
      value:int32 -> button_content_elt_list -> button_elt
    val int64_button :
      ?a:button_attrib_t ->
      name:[< int64 Eliom_parameters.setone ] Eliom_parameters.param_name ->
      value:int64 -> button_content_elt_list -> button_elt
    val float_button :
      ?a:button_attrib_t ->
      name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
      value:float -> button_content_elt_list -> button_elt
    val user_type_button :
      ?a:button_attrib_t ->
      name:[< 'Eliom_parameters.setone ] Eliom_parameters.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 Eliom_parameters.setoneradio ]
           Eliom_parameters.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 ] Eliom_parameters.param_name ->
      int select_opt -> int select_opt list -> select_elt
    val int32_select :
      ?a:select_attrib_t ->
      name:[< `One of int32 ] Eliom_parameters.param_name ->
      int32 select_opt -> int32 select_opt list -> select_elt
    val int64_select :
      ?a:select_attrib_t ->
      name:[< `One of int64 ] Eliom_parameters.param_name ->
      int64 select_opt -> int64 select_opt list -> select_elt
    val float_select :
      ?a:select_attrib_t ->
      name:[< `One of float ] Eliom_parameters.param_name ->
      float select_opt -> float select_opt list -> select_elt
    val string_select :
      ?a:select_attrib_t ->
      name:[< `One of string ] Eliom_parameters.param_name ->
      string select_opt -> string select_opt list -> select_elt
    val user_type_select :
      ?a:select_attrib_t ->
      name:[< `One of 'a ] Eliom_parameters.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 ] Eliom_parameters.param_name ->
      int select_opt -> int select_opt list -> select_elt
    val int32_multiple_select :
      ?a:select_attrib_t ->
      name:[< `Set of int32 ] Eliom_parameters.param_name ->
      int32 select_opt -> int32 select_opt list -> select_elt
    val int64_multiple_select :
      ?a:select_attrib_t ->
      name:[< `Set of int64 ] Eliom_parameters.param_name ->
      int64 select_opt -> int64 select_opt list -> select_elt
    val float_multiple_select :
      ?a:select_attrib_t ->
      name:[< `Set of float ] Eliom_parameters.param_name ->
      float select_opt -> float select_opt list -> select_elt
    val string_multiple_select :
      ?a:select_attrib_t ->
      name:[< `Set of string ] Eliom_parameters.param_name ->
      string select_opt -> string select_opt list -> select_elt
    val user_type_multiple_select :
      ?a:select_attrib_t ->
      name:[< `Set of 'a ] Eliom_parameters.param_name ->
      'a select_opt -> 'a select_opt list -> ('-> string) -> select_elt
  end