functor (T : sig type content end->
  sig
    type page = T.content XHTML.M.elt 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_service' :
      ?options:options ->
      ?sp:Eliom_sessions.server_params ->
      ?https:bool ->
      name:string ->
      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 :
      ?options:options ->
      ?sp:Eliom_sessions.server_params ->
      ?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 ->
      ?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 ->
      ?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 ->
      ?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_service' :
      ?options:options ->
      ?sp:Eliom_sessions.server_params ->
      ?keep_get_na_params:bool ->
      ?https:bool ->
      name:string ->
      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 :
      ?options:options ->
      ?sp:Eliom_sessions.server_params ->
      ?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 ->
      ?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 ->
      ?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 ->
      ?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_service' :
          ?options:options ->
          ?sp:Eliom_sessions.server_params ->
          ?https:bool ->
          name:string ->
          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 :
          ?options:options ->
          ?sp:Eliom_sessions.server_params ->
          ?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 ->
          ?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 ->
          ?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 ->
          ?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_service' :
          ?options:options ->
          ?sp:Eliom_sessions.server_params ->
          ?keep_get_na_params:bool ->
          ?https:bool ->
          name:string ->
          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 :
          ?options:options ->
          ?sp:Eliom_sessions.server_params ->
          ?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 ->
          ?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 ->
          ?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 ->
          ?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
    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 -> '-> XHTML.M.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 -> '-> XHTML.M.uri
    val a :
      ?https:bool ->
      ?a:Xhtmltypes.a_attrib XHTML.M.attrib list ->
      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 ->
      Xhtmltypes.a_content XHTML.M.elt list ->
      '-> [> Xhtmltypes.a ] XHTML.M.elt
    val css_link :
      ?a:Xhtmltypes.link_attrib XHTML.M.attrib list ->
      uri:XHTML.M.uri -> unit -> [> Xhtmltypes.link ] XHTML.M.elt
    val js_script :
      ?a:Xhtmltypes.script_attrib XHTML.M.attrib list ->
      uri:XHTML.M.uri -> unit -> [> Xhtmltypes.script ] XHTML.M.elt
    val get_form :
      ?https:bool ->
      ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
      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 ->
      ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
      [> Xhtmltypes.form ] XHTML.M.elt
    val lwt_get_form :
      ?https:bool ->
      ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
      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 ->
      ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
      Xhtmltypes.form XHTML.M.elt Lwt.t
    val post_form :
      ?https:bool ->
      ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
      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 ->
      ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
      '-> [> Xhtmltypes.form ] XHTML.M.elt
    val lwt_post_form :
      ?https:bool ->
      ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
      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 ->
      ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
      '-> Xhtmltypes.form XHTML.M.elt Lwt.t
    type basic_input_type = [ `Hidden | `Password | `Submit | `Text ]
    val int_input :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      input_type:[< basic_input_type ] ->
      ?name:[< int Eliom_parameters.setoneradio ] Eliom_parameters.param_name ->
      ?value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val int32_input :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      input_type:[< basic_input_type ] ->
      ?name:[< int32 Eliom_parameters.setoneradio ]
            Eliom_parameters.param_name ->
      ?value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val int64_input :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      input_type:[< basic_input_type ] ->
      ?name:[< int64 Eliom_parameters.setoneradio ]
            Eliom_parameters.param_name ->
      ?value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val float_input :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      input_type:[< basic_input_type ] ->
      ?name:[< float Eliom_parameters.setoneradio ]
            Eliom_parameters.param_name ->
      ?value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val string_input :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      input_type:[< basic_input_type ] ->
      ?name:[< string Eliom_parameters.setoneradio ]
            Eliom_parameters.param_name ->
      ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val user_type_input :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      input_type:[< basic_input_type ] ->
      ?name:[< 'Eliom_parameters.setoneradio ] Eliom_parameters.param_name ->
      ?value:'-> ('-> string) -> [> Xhtmltypes.input ] XHTML.M.elt
    val raw_input :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      input_type:[< `Button | `Hidden | `Password | `Reset | `Submit | `Text ] ->
      ?name:string ->
      ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val file_input :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      name:[< Ocsigen_extensions.file_info Eliom_parameters.setoneradio ]
           Eliom_parameters.param_name ->
      unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val image_input :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      name:[< Eliom_parameters.coordinates Eliom_parameters.oneradio ]
           Eliom_parameters.param_name ->
      ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val int_image_input :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      name:[< (int * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
           Eliom_parameters.param_name ->
      value:int ->
      ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val int32_image_input :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      name:[< (int32 * Eliom_parameters.coordinates)
              Eliom_parameters.oneradio ]
           Eliom_parameters.param_name ->
      value:int32 ->
      ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val int64_image_input :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      name:[< (int64 * Eliom_parameters.coordinates)
              Eliom_parameters.oneradio ]
           Eliom_parameters.param_name ->
      value:int64 ->
      ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val float_image_input :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      name:[< (float * Eliom_parameters.coordinates)
              Eliom_parameters.oneradio ]
           Eliom_parameters.param_name ->
      value:float ->
      ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val string_image_input :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      name:[< (string * Eliom_parameters.coordinates)
              Eliom_parameters.oneradio ]
           Eliom_parameters.param_name ->
      value:string ->
      ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val user_type_image_input :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      name:[< ('a * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
           Eliom_parameters.param_name ->
      value:'->
      ?src:XHTML.M.uri -> ('-> string) -> [> Xhtmltypes.input ] XHTML.M.elt
    val raw_image_input :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      name:string ->
      value:string ->
      ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val bool_checkbox :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      ?checked:bool ->
      name:[ `One of bool ] Eliom_parameters.param_name ->
      unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val int_checkbox :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      ?checked:bool ->
      name:[ `Set of int ] Eliom_parameters.param_name ->
      value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val int32_checkbox :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      ?checked:bool ->
      name:[ `Set of int32 ] Eliom_parameters.param_name ->
      value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val int64_checkbox :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      ?checked:bool ->
      name:[ `Set of int64 ] Eliom_parameters.param_name ->
      value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val float_checkbox :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      ?checked:bool ->
      name:[ `Set of float ] Eliom_parameters.param_name ->
      value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val string_checkbox :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      ?checked:bool ->
      name:[ `Set of string ] Eliom_parameters.param_name ->
      value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val user_type_checkbox :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      ?checked:bool ->
      name:[ `Set of 'a ] Eliom_parameters.param_name ->
      value:'-> ('-> string) -> [> Xhtmltypes.input ] XHTML.M.elt
    val raw_checkbox :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      ?checked:bool ->
      name:string ->
      value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val string_radio :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      ?checked:bool ->
      name:[ `Radio of string ] Eliom_parameters.param_name ->
      value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val int_radio :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      ?checked:bool ->
      name:[ `Radio of int ] Eliom_parameters.param_name ->
      value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val int32_radio :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      ?checked:bool ->
      name:[ `Radio of int32 ] Eliom_parameters.param_name ->
      value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val int64_radio :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      ?checked:bool ->
      name:[ `Radio of int64 ] Eliom_parameters.param_name ->
      value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val float_radio :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      ?checked:bool ->
      name:[ `Radio of float ] Eliom_parameters.param_name ->
      value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    val user_type_radio :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      ?checked:bool ->
      name:[ `Radio of 'a ] Eliom_parameters.param_name ->
      value:'-> ('-> string) -> [> Xhtmltypes.input ] XHTML.M.elt
    val raw_radio :
      ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
      ?checked:bool ->
      name:string ->
      value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
    type button_type = [ `Button | `Reset | `Submit ]
    val string_button :
      ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
      name:[< string Eliom_parameters.setone ] Eliom_parameters.param_name ->
      value:string ->
      Xhtmltypes.button_content XHTML.M.elt list ->
      [> Xhtmltypes.button ] XHTML.M.elt
    val int_button :
      ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
      name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
      value:int ->
      Xhtmltypes.button_content XHTML.M.elt list ->
      [> Xhtmltypes.button ] XHTML.M.elt
    val int32_button :
      ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
      name:[< int32 Eliom_parameters.setone ] Eliom_parameters.param_name ->
      value:int32 ->
      Xhtmltypes.button_content XHTML.M.elt list ->
      [> Xhtmltypes.button ] XHTML.M.elt
    val int64_button :
      ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
      name:[< int64 Eliom_parameters.setone ] Eliom_parameters.param_name ->
      value:int64 ->
      Xhtmltypes.button_content XHTML.M.elt list ->
      [> Xhtmltypes.button ] XHTML.M.elt
    val float_button :
      ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
      name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
      value:float ->
      Xhtmltypes.button_content XHTML.M.elt list ->
      [> Xhtmltypes.button ] XHTML.M.elt
    val user_type_button :
      ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
      name:[< 'Eliom_parameters.setone ] Eliom_parameters.param_name ->
      value:'->
      ('-> string) ->
      Xhtmltypes.button_content XHTML.M.elt list ->
      [> Xhtmltypes.button ] XHTML.M.elt
    val raw_button :
      ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
      button_type:[< button_type ] ->
      name:string ->
      value:string ->
      Xhtmltypes.button_content XHTML.M.elt list ->
      [> Xhtmltypes.button ] XHTML.M.elt
    val button :
      ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
      button_type:[< button_type ] ->
      Xhtmltypes.button_content XHTML.M.elt list ->
      [> Xhtmltypes.button ] XHTML.M.elt
    val textarea :
      ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
      name:[< string Eliom_parameters.setoneradio ]
           Eliom_parameters.param_name ->
      ?value:Xhtmltypes.pcdata XHTML.M.elt ->
      rows:int -> cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
    val raw_textarea :
      ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
      name:string ->
      ?value:Xhtmltypes.pcdata XHTML.M.elt ->
      rows:int -> cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
    type 'a soption =
        Xhtmltypes.option_attrib XHTML.M.attrib list * 'a *
        Xhtmltypes.pcdata XHTML.M.elt option * bool
    type 'a select_opt =
        Optgroup of
          [ `Class | `Disabled | `Id | `Title | `XML_lang ] XHTML.M.attrib
          list * string * 'a soption * 'a soption list
      | Option of 'a soption
    val int_select :
      ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
      name:[< `One of int ] Eliom_parameters.param_name ->
      int select_opt ->
      int select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
    val int32_select :
      ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
      name:[< `One of int32 ] Eliom_parameters.param_name ->
      int32 select_opt ->
      int32 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
    val int64_select :
      ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
      name:[< `One of int64 ] Eliom_parameters.param_name ->
      int64 select_opt ->
      int64 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
    val float_select :
      ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
      name:[< `One of float ] Eliom_parameters.param_name ->
      float select_opt ->
      float select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
    val string_select :
      ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
      name:[< `One of string ] Eliom_parameters.param_name ->
      string select_opt ->
      string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
    val user_type_select :
      ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
      name:[< `One of 'a ] Eliom_parameters.param_name ->
      'a select_opt ->
      'a select_opt list ->
      ('-> string) -> [> Xhtmltypes.select ] XHTML.M.elt
    val raw_select :
      ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
      name:string ->
      string select_opt ->
      string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
    val int_multiple_select :
      ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
      name:[< `Set of int ] Eliom_parameters.param_name ->
      int select_opt ->
      int select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
    val int32_multiple_select :
      ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
      name:[< `Set of int32 ] Eliom_parameters.param_name ->
      int32 select_opt ->
      int32 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
    val int64_multiple_select :
      ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
      name:[< `Set of int64 ] Eliom_parameters.param_name ->
      int64 select_opt ->
      int64 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
    val float_multiple_select :
      ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
      name:[< `Set of float ] Eliom_parameters.param_name ->
      float select_opt ->
      float select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
    val string_multiple_select :
      ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
      name:[< `Set of string ] Eliom_parameters.param_name ->
      string select_opt ->
      string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
    val user_type_multiple_select :
      ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
      name:[< `Set of 'a ] Eliom_parameters.param_name ->
      'a select_opt ->
      'a select_opt list ->
      ('-> string) -> [> Xhtmltypes.select ] XHTML.M.elt
    val raw_multiple_select :
      ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
      name:string ->
      string select_opt ->
      string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
  end