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 ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_extensions.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            sp:Eliom_sessions.server_params ->
            page -> Eliom_services.result_to_send Lwt.t
          val register :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            ?options:options ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_extensions.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
      type form_content_elt
      type form_content_elt_list
      type form_elt
      type a_content_elt
      type a_content_elt_list
      type a_elt
      type a_elt_list
      type div_content_elt
      type div_content_elt_list
      type uri
      type link_elt
      type script_elt
      type textarea_elt
      type input_elt
      type pcdata_elt
      type select_elt
      type select_content_elt
      type select_content_elt_list
      type button_elt
      type button_content_elt
      type button_content_elt_list
      type option_elt
      type option_elt_list
      type a_attrib_t
      type form_attrib_t
      type input_attrib_t
      type textarea_attrib_t
      type select_attrib_t
      type link_attrib_t
      type script_attrib_t
      type optgroup_attrib_t
      type option_attrib_t
      type button_attrib_t
      type input_type_t
      type button_type_t
      val make_full_string_uri :
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string -> ?port:int -> ?fragment:string -> '-> string
      val make_full_uri :
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string -> ?port:int -> ?fragment:string -> '-> uri
      val make_string_uri :
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string -> ?port:int -> ?fragment:string -> '-> string
      val make_uri :
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string -> ?port:int -> ?fragment:string -> '-> uri
      val a :
        ?https:bool ->
        ?a:a_attrib_t ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int -> ?fragment:string -> a_content_elt_list -> '-> a_elt
      val css_link : ?a:link_attrib_t -> uri:uri -> unit -> link_elt
      val js_script : ?a:script_attrib_t -> uri:uri -> unit -> script_elt
      val get_form :
        ?https:bool ->
        ?a:form_attrib_t ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string -> ('-> form_content_elt_list) -> form_elt
      val lwt_get_form :
        ?https:bool ->
        ?a:form_attrib_t ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ('-> form_content_elt_list Lwt.t) -> form_elt Lwt.t
      val post_form :
        ?https:bool ->
        ?a:form_attrib_t ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_get_na_params:bool ->
        ('-> form_content_elt_list) -> '-> form_elt
      val lwt_post_form :
        ?https:bool ->
        ?a:form_attrib_t ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_get_na_params:bool ->
        ('-> form_content_elt_list Lwt.t) -> '-> form_elt Lwt.t
      val int_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< int Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int -> unit -> input_elt
      val int32_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< int32 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int32 -> unit -> input_elt
      val int64_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< int64 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int64 -> unit -> input_elt
      val float_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< float Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:float -> unit -> input_elt
      val string_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< string Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:string -> unit -> input_elt
      val user_type_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< 'Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:'-> ('-> string) -> input_elt
      val raw_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:string -> ?value:string -> unit -> input_elt
      val file_input :
        ?a:input_attrib_t ->
        name:[< Ocsigen_extensions.file_info Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        unit -> input_elt
      val image_input :
        ?a:input_attrib_t ->
        name:[< Eliom_parameters.coordinates Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        ?src:uri -> unit -> input_elt
      val int_image_input :
        ?a:input_attrib_t ->
        name:[< (int * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int -> ?src:uri -> unit -> input_elt
      val int32_image_input :
        ?a:input_attrib_t ->
        name:[< (int32 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int32 -> ?src:uri -> unit -> input_elt
      val int64_image_input :
        ?a:input_attrib_t ->
        name:[< (int64 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int64 -> ?src:uri -> unit -> input_elt
      val float_image_input :
        ?a:input_attrib_t ->
        name:[< (float * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:float -> ?src:uri -> unit -> input_elt
      val string_image_input :
        ?a:input_attrib_t ->
        name:[< (string * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:string -> ?src:uri -> unit -> input_elt
      val user_type_image_input :
        ?a:input_attrib_t ->
        name:[< ('a * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:'-> ?src:uri -> ('-> string) -> input_elt
      val raw_image_input :
        ?a:input_attrib_t ->
        name:string -> value:string -> ?src:uri -> unit -> input_elt
      val bool_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `One of bool ] Eliom_parameters.param_name ->
        unit -> input_elt
      val int_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of int ] Eliom_parameters.param_name ->
        value:int -> unit -> input_elt
      val int32_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> input_elt
      val int64_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> input_elt
      val float_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of float ] Eliom_parameters.param_name ->
        value:float -> unit -> input_elt
      val string_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of string ] Eliom_parameters.param_name ->
        value:string -> unit -> input_elt
      val user_type_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of 'a ] Eliom_parameters.param_name ->
        value:'-> ('-> string) -> input_elt
      val raw_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool -> name:string -> value:string -> unit -> input_elt
      val string_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of string ] Eliom_parameters.param_name ->
        value:string -> unit -> input_elt
      val int_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of int ] Eliom_parameters.param_name ->
        value:int -> unit -> input_elt
      val int32_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> input_elt
      val int64_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> input_elt
      val float_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of float ] Eliom_parameters.param_name ->
        value:float -> unit -> input_elt
      val user_type_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of 'a ] Eliom_parameters.param_name ->
        value:'-> ('-> string) -> input_elt
      val raw_radio :
        ?a:input_attrib_t ->
        ?checked:bool -> name:string -> value:string -> unit -> input_elt
      val string_button :
        ?a:button_attrib_t ->
        name:[< string Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:string -> button_content_elt_list -> button_elt
      val int_button :
        ?a:button_attrib_t ->
        name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int -> button_content_elt_list -> button_elt
      val int32_button :
        ?a:button_attrib_t ->
        name:[< int32 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int32 -> button_content_elt_list -> button_elt
      val int64_button :
        ?a:button_attrib_t ->
        name:[< int64 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int64 -> button_content_elt_list -> button_elt
      val float_button :
        ?a:button_attrib_t ->
        name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:float -> button_content_elt_list -> button_elt
      val user_type_button :
        ?a:button_attrib_t ->
        name:[< 'Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:'-> ('-> string) -> button_content_elt_list -> button_elt
      val raw_button :
        ?a:button_attrib_t ->
        button_type:button_type_t ->
        name:string -> value:string -> button_content_elt_list -> button_elt
      val button :
        ?a:button_attrib_t ->
        button_type:button_type_t -> button_content_elt_list -> button_elt
      val textarea :
        ?a:textarea_attrib_t ->
        name:[< string Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        ?value:pcdata_elt -> rows:int -> cols:int -> unit -> textarea_elt
      val raw_textarea :
        ?a:textarea_attrib_t ->
        name:string ->
        ?value:pcdata_elt -> rows:int -> cols:int -> unit -> textarea_elt
      type 'a soption = option_attrib_t * 'a * pcdata_elt option * bool
      type 'a select_opt =
          Optgroup of optgroup_attrib_t * string * 'a soption *
            'a soption list
        | Option of 'a soption
      val raw_select :
        ?a:select_attrib_t ->
        name:string ->
        string select_opt -> string select_opt list -> select_elt
      val int_select :
        ?a:select_attrib_t ->
        name:[< `One of int ] Eliom_parameters.param_name ->
        int select_opt -> int select_opt list -> select_elt
      val int32_select :
        ?a:select_attrib_t ->
        name:[< `One of int32 ] Eliom_parameters.param_name ->
        int32 select_opt -> int32 select_opt list -> select_elt
      val int64_select :
        ?a:select_attrib_t ->
        name:[< `One of int64 ] Eliom_parameters.param_name ->
        int64 select_opt -> int64 select_opt list -> select_elt
      val float_select :
        ?a:select_attrib_t ->
        name:[< `One of float ] Eliom_parameters.param_name ->
        float select_opt -> float select_opt list -> select_elt
      val string_select :
        ?a:select_attrib_t ->
        name:[< `One of string ] Eliom_parameters.param_name ->
        string select_opt -> string select_opt list -> select_elt
      val user_type_select :
        ?a:select_attrib_t ->
        name:[< `One of 'a ] Eliom_parameters.param_name ->
        'a select_opt -> 'a select_opt list -> ('-> string) -> select_elt
      val raw_multiple_select :
        ?a:select_attrib_t ->
        name:string ->
        string select_opt -> string select_opt list -> select_elt
      val int_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of int ] Eliom_parameters.param_name ->
        int select_opt -> int select_opt list -> select_elt
      val int32_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of int32 ] Eliom_parameters.param_name ->
        int32 select_opt -> int32 select_opt list -> select_elt
      val int64_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of int64 ] Eliom_parameters.param_name ->
        int64 select_opt -> int64 select_opt list -> select_elt
      val float_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of float ] Eliom_parameters.param_name ->
        float select_opt -> float select_opt list -> select_elt
      val string_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of string ] Eliom_parameters.param_name ->
        string select_opt -> string select_opt list -> select_elt
      val user_type_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of 'a ] Eliom_parameters.param_name ->
        'a select_opt -> 'a select_opt list -> ('-> string) -> select_elt
    end
  module type XHTMLFORMSSIG =
    sig
      val make_full_string_uri :
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string -> ?port:int -> ?fragment:string -> '-> string
      val make_full_uri :
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int -> ?fragment:string -> '-> XHTML.M.uri
      val make_string_uri :
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string -> ?port:int -> ?fragment:string -> '-> string
      val make_uri :
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int -> ?fragment:string -> '-> XHTML.M.uri
      val a :
        ?https:bool ->
        ?a:Xhtmltypes.a_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        Xhtmltypes.a_content XHTML.M.elt list ->
        '-> [> Xhtmltypes.a ] XHTML.M.elt
      val css_link :
        ?a:Xhtmltypes.link_attrib XHTML.M.attrib list ->
        uri:XHTML.M.uri -> unit -> [> Xhtmltypes.link ] XHTML.M.elt
      val js_script :
        ?a:Xhtmltypes.script_attrib XHTML.M.attrib list ->
        uri:XHTML.M.uri -> unit -> [> Xhtmltypes.script ] XHTML.M.elt
      val get_form :
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        [> Xhtmltypes.form ] XHTML.M.elt
      val lwt_get_form :
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
        Xhtmltypes.form XHTML.M.elt Lwt.t
      val post_form :
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_get_na_params:bool ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        '-> [> Xhtmltypes.form ] XHTML.M.elt
      val lwt_post_form :
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_get_na_params:bool ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
        '-> Xhtmltypes.form XHTML.M.elt Lwt.t
      type basic_input_type = [ `Hidden | `Password | `Submit | `Text ]
      val int_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< Eliom_predefmod.XHTMLFORMSSIG.basic_input_type ] ->
        ?name:[< int Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< Eliom_predefmod.XHTMLFORMSSIG.basic_input_type ] ->
        ?name:[< int32 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< Eliom_predefmod.XHTMLFORMSSIG.basic_input_type ] ->
        ?name:[< int64 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< Eliom_predefmod.XHTMLFORMSSIG.basic_input_type ] ->
        ?name:[< float Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< Eliom_predefmod.XHTMLFORMSSIG.basic_input_type ] ->
        ?name:[< string Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< Eliom_predefmod.XHTMLFORMSSIG.basic_input_type ] ->
        ?name:[< 'Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:'-> ('-> string) -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< `Button
                    | `Hidden
                    | `Password
                    | `Reset
                    | `Submit
                    | `Text ] ->
        ?name:string ->
        ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val file_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< Ocsigen_extensions.file_info Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< Eliom_parameters.coordinates Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int32 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int32 ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int64 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int64 ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (float * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:float ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (string * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:string ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< ('a * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:'->
        ?src:XHTML.M.uri ->
        ('-> string) -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:string ->
        value:string ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val bool_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `One of bool ] Eliom_parameters.param_name ->
        unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int ] Eliom_parameters.param_name ->
        value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of float ] Eliom_parameters.param_name ->
        value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of string ] Eliom_parameters.param_name ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of 'a ] Eliom_parameters.param_name ->
        value:'-> ('-> string) -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:string ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of string ] Eliom_parameters.param_name ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int ] Eliom_parameters.param_name ->
        value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of float ] Eliom_parameters.param_name ->
        value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of 'a ] Eliom_parameters.param_name ->
        value:'-> ('-> string) -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:string ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      type button_type = [ `Button | `Reset | `Submit ]
      val string_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< string Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:string ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int32_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int32 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int32 ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int64_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int64 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int64 ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val float_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:float ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val user_type_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< 'Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:'->
        ('-> string) ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val raw_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        button_type:[< 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.setoneradio ]
             Eliom_parameters.param_name ->
        ?value:Xhtmltypes.pcdata XHTML.M.elt ->
        rows:int -> cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
      val raw_textarea :
        ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
        name:string ->
        ?value:Xhtmltypes.pcdata XHTML.M.elt ->
        rows:int -> cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
      type 'a soption =
          Xhtmltypes.option_attrib XHTML.M.attrib list * 'a *
          Xhtmltypes.pcdata XHTML.M.elt option * bool
      type 'a select_opt =
          Optgroup of
            [ `Class | `Disabled | `Id | `Title | `XML_lang ] XHTML.M.attrib
            list * string * '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 int32_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int32 ] Eliom_parameters.param_name ->
        int32 Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        int32 Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
      val int64_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int64 ] Eliom_parameters.param_name ->
        int64 Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        int64 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 int32_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int32 ] Eliom_parameters.param_name ->
        int32 Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        int32 Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
      val int64_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int64 ] Eliom_parameters.param_name ->
        int64 Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        int64 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 = XHTML.M.doctypes
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        sp:Eliom_sessions.server_params ->
        page -> Eliom_services.result_to_send Lwt.t
      val register :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_extensions.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            sp:Eliom_sessions.server_params ->
            page -> Eliom_services.result_to_send Lwt.t
          val register :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            ?options:options ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_extensions.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
      val make_full_string_uri :
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string -> ?port:int -> ?fragment:string -> '-> string
      val make_full_uri :
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int -> ?fragment:string -> '-> XHTML.M.uri
      val make_string_uri :
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string -> ?port:int -> ?fragment:string -> '-> string
      val make_uri :
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int -> ?fragment:string -> '-> XHTML.M.uri
      val a :
        ?https:bool ->
        ?a:Xhtmltypes.a_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        Xhtmltypes.a_content XHTML.M.elt list ->
        '-> [> Xhtmltypes.a ] XHTML.M.elt
      val css_link :
        ?a:Xhtmltypes.link_attrib XHTML.M.attrib list ->
        uri:XHTML.M.uri -> unit -> [> Xhtmltypes.link ] XHTML.M.elt
      val js_script :
        ?a:Xhtmltypes.script_attrib XHTML.M.attrib list ->
        uri:XHTML.M.uri -> unit -> [> Xhtmltypes.script ] XHTML.M.elt
      val get_form :
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        [> Xhtmltypes.form ] XHTML.M.elt
      val lwt_get_form :
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
        Xhtmltypes.form XHTML.M.elt Lwt.t
      val post_form :
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_get_na_params:bool ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        '-> [> Xhtmltypes.form ] XHTML.M.elt
      val lwt_post_form :
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_get_na_params:bool ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
        '-> Xhtmltypes.form XHTML.M.elt Lwt.t
      type basic_input_type = [ `Hidden | `Password | `Submit | `Text ]
      val int_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< int Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< int32 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< int64 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< float Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< string Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< 'Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:'-> ('-> string) -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< `Button
                    | `Hidden
                    | `Password
                    | `Reset
                    | `Submit
                    | `Text ] ->
        ?name:string ->
        ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val file_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< Ocsigen_extensions.file_info Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< Eliom_parameters.coordinates Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int32 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int32 ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int64 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int64 ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (float * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:float ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (string * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:string ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< ('a * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:'->
        ?src:XHTML.M.uri ->
        ('-> string) -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:string ->
        value:string ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val bool_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `One of bool ] Eliom_parameters.param_name ->
        unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int ] Eliom_parameters.param_name ->
        value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of float ] Eliom_parameters.param_name ->
        value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of string ] Eliom_parameters.param_name ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of 'a ] Eliom_parameters.param_name ->
        value:'-> ('-> string) -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:string ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of string ] Eliom_parameters.param_name ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int ] Eliom_parameters.param_name ->
        value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of float ] Eliom_parameters.param_name ->
        value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of 'a ] Eliom_parameters.param_name ->
        value:'-> ('-> string) -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:string ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      type button_type = [ `Button | `Reset | `Submit ]
      val string_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< string Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:string ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int32_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int32 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int32 ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int64_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int64 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int64 ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val float_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:float ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val user_type_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< 'Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:'->
        ('-> string) ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val raw_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        button_type:[< button_type ] ->
        name:string ->
        value:string ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        button_type:[< button_type ] ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val textarea :
        ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
        name:[< string Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        ?value:Xhtmltypes.pcdata XHTML.M.elt ->
        rows:int -> cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
      val raw_textarea :
        ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
        name:string ->
        ?value:Xhtmltypes.pcdata XHTML.M.elt ->
        rows:int -> cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
      type 'a soption =
          Xhtmltypes.option_attrib XHTML.M.attrib list * 'a *
          Xhtmltypes.pcdata XHTML.M.elt option * bool
      type 'a select_opt =
          Optgroup of
            [ `Class | `Disabled | `Id | `Title | `XML_lang ] XHTML.M.attrib
            list * string * 'a soption * 'a soption list
        | Option of 'a soption
      val int_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int ] Eliom_parameters.param_name ->
        int select_opt ->
        int select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int32_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int32 ] Eliom_parameters.param_name ->
        int32 select_opt ->
        int32 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int64_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int64 ] Eliom_parameters.param_name ->
        int64 select_opt ->
        int64 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val float_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of float ] Eliom_parameters.param_name ->
        float select_opt ->
        float select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val string_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of string ] Eliom_parameters.param_name ->
        string select_opt ->
        string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val user_type_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of 'a ] Eliom_parameters.param_name ->
        'a select_opt ->
        'a select_opt list ->
        ('-> string) -> [> Xhtmltypes.select ] XHTML.M.elt
      val raw_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:string ->
        string select_opt ->
        string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int ] Eliom_parameters.param_name ->
        int select_opt ->
        int select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int32_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int32 ] Eliom_parameters.param_name ->
        int32 select_opt ->
        int32 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int64_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int64 ] Eliom_parameters.param_name ->
        int64 select_opt ->
        int64 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val float_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of float ] Eliom_parameters.param_name ->
        float select_opt ->
        float select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val string_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of string ] Eliom_parameters.param_name ->
        string select_opt ->
        string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val user_type_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of 'a ] Eliom_parameters.param_name ->
        'a select_opt ->
        'a select_opt list ->
        ('-> string) -> [> Xhtmltypes.select ] XHTML.M.elt
      val raw_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:string ->
        string select_opt ->
        string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
    end
  module Xhtmlforms : XHTMLFORMSSIG
  module Xhtmlreg :
    sig
      type page = Xhtmltypes.xhtml XHTML.M.elt
      type options = XHTML.M.doctypes
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        sp:Eliom_sessions.server_params ->
        page -> Eliom_services.result_to_send Lwt.t
      val register :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_extensions.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            sp:Eliom_sessions.server_params ->
            page -> Eliom_services.result_to_send Lwt.t
          val register :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            ?options:options ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_extensions.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)