Ocsigen

This is a preliminary version of the documentation. Help us to improve it by filling tickets. We are looking for native english speakers to proof read the documentation. Contact us!

sig
  module type ELIOMSIG =
    sig
      type page
      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 ->
        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 ->
        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 ->
        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 ->
        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 ->
        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 ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        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 ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        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 ->
        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 ->
        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 ->
        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 ->
        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 ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        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 ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        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 ->
            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 ->
            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 ->
            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 ->
            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 ->
            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 ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            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 ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            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 ->
            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 ->
            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 ->
            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 ->
            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 ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            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 ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            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
      type form_content_elt_list
      type form_elt
      type a_content_elt
      type a_content_elt_list
      type a_elt
      type a_elt_list
      type div_content_elt
      type div_content_elt_list
      type uri
      type link_elt
      type script_elt
      type textarea_elt
      type input_elt
      type pcdata_elt
      type select_elt
      type select_content_elt
      type select_content_elt_list
      type button_elt
      type button_content_elt
      type button_content_elt_list
      type a_attrib_t
      type form_attrib_t
      type input_attrib_t
      type textarea_attrib_t
      type select_attrib_t
      type link_attrib_t
      type script_attrib_t
      type optgroup_attrib_t
      type option_attrib_t
      type button_attrib_t
      type input_type_t
      type button_type_t
      val make_full_string_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> '-> uri Lwt.t
      val make_string_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params -> ?fragment:string -> '-> string
      val make_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params -> ?fragment:string -> '-> uri
      val a :
        ?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 ->
        ?fragment:string -> a_content_elt_list -> '-> a_elt
      val css_link : ?a:link_attrib_t -> uri:uri -> unit -> link_elt
      val js_script : ?a:script_attrib_t -> uri:uri -> unit -> script_elt
      val get_form :
        ?a:form_attrib_t ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> ('-> form_content_elt_list) -> form_elt
      val post_form :
        ?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 ->
        ?fragment:string ->
        ?keep_get_na_params:bool ->
        ('-> form_content_elt_list) -> '-> form_elt
      val int_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< int Eliom_parameters.setoneopt ] Eliom_parameters.param_name ->
        ?value:int -> unit -> input_elt
      val float_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< float Eliom_parameters.setoneopt ]
              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.setoneopt ]
              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.setoneopt ] 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.setoneopt ]
             Eliom_parameters.param_name ->
        unit -> input_elt
      val image_input :
        ?a:input_attrib_t ->
        name:[< Eliom_parameters.coordinates Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        ?src:uri -> unit -> input_elt
      val int_image_input :
        ?a:input_attrib_t ->
        name:[< (int * Eliom_parameters.coordinates) Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        value:int -> ?src:uri -> unit -> input_elt
      val float_image_input :
        ?a:input_attrib_t ->
        name:[< (float * Eliom_parameters.coordinates)
                Eliom_parameters.oneopt ]
             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.oneopt ]
             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.oneopt ]
             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 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:[ `Opt of string ] Eliom_parameters.param_name ->
        value:string -> unit -> input_elt
      val int_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of int ] Eliom_parameters.param_name ->
        value:int -> unit -> input_elt
      val float_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of float ] Eliom_parameters.param_name ->
        value:float -> unit -> input_elt
      val user_type_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt 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 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.setoneopt ]
             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 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 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
  module type XHTMLFORMSSIG =
    sig
      val make_full_string_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> '-> XHTML.M.uri Lwt.t
      val make_string_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params -> ?fragment:string -> '-> string
      val a :
        ?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 ->
        ?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 make_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> '-> XHTML.M.uri
      val get_form :
        ?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 ->
        ?fragment:string ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        [> Xhtmltypes.form ] XHTML.M.elt
      val post_form :
        ?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 ->
        ?fragment:string ->
        ?keep_get_na_params:bool ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        '-> [> Xhtmltypes.form ] XHTML.M.elt
      type basic_input_type = [ `Hidden | `Password | `Submit | `Text ]
      val int_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< Eliom_predefmod.XHTMLFORMSSIG.basic_input_type ] ->
        ?name:[< int Eliom_parameters.setoneopt ] Eliom_parameters.param_name ->
        ?value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< Eliom_predefmod.XHTMLFORMSSIG.basic_input_type ] ->
        ?name:[< float Eliom_parameters.setoneopt ]
              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:[< Eliom_predefmod.XHTMLFORMSSIG.basic_input_type ] ->
        ?name:[< string Eliom_parameters.setoneopt ]
              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:[< Eliom_predefmod.XHTMLFORMSSIG.basic_input_type ] ->
        ?name:[< 'Eliom_parameters.setoneopt ] 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.setoneopt ]
             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.oneopt ]
             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.oneopt ]
             Eliom_parameters.param_name ->
        value:int ->
        ?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.oneopt ]
             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.oneopt ]
             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.oneopt ]
             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 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:[ `Opt 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:[ `Opt of int ] Eliom_parameters.param_name ->
        value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Opt 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:[ `Opt 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 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:[< Eliom_predefmod.XHTMLFORMSSIG.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:[< Eliom_predefmod.XHTMLFORMSSIG.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.setoneopt ]
             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 * 'Eliom_predefmod.XHTMLFORMSSIG.soption *
            'Eliom_predefmod.XHTMLFORMSSIG.soption list
        | Option of 'Eliom_predefmod.XHTMLFORMSSIG.soption
      val int_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int ] Eliom_parameters.param_name ->
        int Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        int Eliom_predefmod.XHTMLFORMSSIG.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 Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        float Eliom_predefmod.XHTMLFORMSSIG.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 Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        string Eliom_predefmod.XHTMLFORMSSIG.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 ->
        'Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        'Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        ('-> string) -> [> Xhtmltypes.select ] XHTML.M.elt
      val raw_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:string ->
        string Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        string Eliom_predefmod.XHTMLFORMSSIG.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 Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        int Eliom_predefmod.XHTMLFORMSSIG.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 Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        float Eliom_predefmod.XHTMLFORMSSIG.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 Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        string Eliom_predefmod.XHTMLFORMSSIG.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 ->
        'Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        'Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        ('-> string) -> [> Xhtmltypes.select ] XHTML.M.elt
      val raw_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:string ->
        string Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        string Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
    end
  module Xhtml :
    sig
      type page = Xhtmltypes.xhtml XHTML.M.elt
      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 ->
        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 ->
        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 ->
        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 ->
        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 ->
        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 ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        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 ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        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 ->
        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 ->
        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 ->
        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 ->
        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 ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        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 ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        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 ->
            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 ->
            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 ->
            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 ->
            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 ->
            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 ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            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 ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            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 ->
            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 ->
            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 ->
            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 ->
            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 ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            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 ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            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 :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> '-> XHTML.M.uri Lwt.t
      val make_string_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params -> ?fragment:string -> '-> string
      val a :
        ?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 ->
        ?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 make_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> '-> XHTML.M.uri
      val get_form :
        ?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 ->
        ?fragment:string ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        [> Xhtmltypes.form ] XHTML.M.elt
      val post_form :
        ?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 ->
        ?fragment:string ->
        ?keep_get_na_params:bool ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        '-> [> Xhtmltypes.form ] XHTML.M.elt
      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.setoneopt ] Eliom_parameters.param_name ->
        ?value:int -> 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.setoneopt ]
              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.setoneopt ]
              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.setoneopt ] 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.setoneopt ]
             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.oneopt ]
             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.oneopt ]
             Eliom_parameters.param_name ->
        value:int ->
        ?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.oneopt ]
             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.oneopt ]
             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.oneopt ]
             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 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:[ `Opt 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:[ `Opt of int ] Eliom_parameters.param_name ->
        value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Opt 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:[ `Opt 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 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.setoneopt ]
             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 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 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
  module Xhtmlcompact :
    sig
      type page = Xhtmltypes.xhtml XHTML.M.elt
      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 ->
        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 ->
        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 ->
        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 ->
        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 ->
        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 ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        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 ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        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 ->
        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 ->
        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 ->
        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 ->
        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 ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        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 ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        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 ->
            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 ->
            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 ->
            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 ->
            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 ->
            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 ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            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 ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            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 ->
            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 ->
            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 ->
            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 ->
            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 ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            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 ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            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 :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> '-> XHTML.M.uri Lwt.t
      val make_string_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params -> ?fragment:string -> '-> string
      val a :
        ?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 ->
        ?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 make_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> '-> XHTML.M.uri
      val get_form :
        ?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 ->
        ?fragment:string ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        [> Xhtmltypes.form ] XHTML.M.elt
      val post_form :
        ?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 ->
        ?fragment:string ->
        ?keep_get_na_params:bool ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        '-> [> Xhtmltypes.form ] XHTML.M.elt
      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.setoneopt ] Eliom_parameters.param_name ->
        ?value:int -> 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.setoneopt ]
              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.setoneopt ]
              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.setoneopt ] 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.setoneopt ]
             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.oneopt ]
             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.oneopt ]
             Eliom_parameters.param_name ->
        value:int ->
        ?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.oneopt ]
             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.oneopt ]
             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.oneopt ]
             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