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 Xhtml :
    sig
      type page = Xhtmltypes_duce.html
      type options
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        sp:Eliom_sessions.server_params ->
        page -> Eliom_services.result_to_send Lwt.t
      val register :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        path:Ocsigen_extensions.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_service' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        name:string ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        name:string ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            sp:Eliom_sessions.server_params ->
            page -> Eliom_services.result_to_send Lwt.t
          val register :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            ?options:options ->
            ?session_name:string ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            path:Ocsigen_extensions.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_service' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            name:string ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?session_name:string ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?session_name:string ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            name:string ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?session_name:string ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?session_name:string ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
      type form_content_elt = Xhtmltypes_duce.form_content
      type form_content_elt_list =
          {{Eliom_duce.Blocks.form_content_elt_list}}
      type form_elt = Xhtmltypes_duce.form
      type a_content_elt = Xhtmltypes_duce.a_content
      type a_content_elt_list = {{Eliom_duce.Blocks.a_content_elt_list}}
      type a_elt = Xhtmltypes_duce.a
      type a_elt_list = {{Eliom_duce.Blocks.a_elt_list}}
      type div_content_elt = Xhtmltypes_duce.flows
      type div_content_elt_list = {{Eliom_duce.Blocks.div_content_elt_list}}
      type uri = string
      type link_elt = Xhtmltypes_duce.link
      type script_elt = Xhtmltypes_duce.script
      type textarea_elt = Xhtmltypes_duce.textarea
      type input_elt = Xhtmltypes_duce.input
      type pcdata_elt = {{String}}
      type select_elt = Xhtmltypes_duce.select
      type select_content_elt
      type select_content_elt_list
      type button_elt
      type button_content_elt
      type button_content_elt_list
      type a_attrib_t = Xhtmltypes_duce.a_attrs
      type form_attrib_t = {{Eliom_duce.Blocks.form_attrib_t}}
      type input_attrib_t = Xhtmltypes_duce.input_attrs
      type textarea_attrib_t = {{Eliom_duce.Blocks.textarea_attrib_t}}
      type select_attrib_t = Xhtmltypes_duce.select_attrs
      type link_attrib_t = Xhtmltypes_duce.link_attrs
      type script_attrib_t = {{Eliom_duce.Blocks.script_attrib_t}}
      type optgroup_attrib_t
      type option_attrib_t = Xhtmltypes_duce.option_attrs
      type button_attrib_t
      type input_type_t = Xhtmltypes_duce.input_type_values
      type button_type_t
      val make_full_string_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> '-> uri Lwt.t
      val make_string_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params -> ?fragment:string -> '-> string
      val make_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params -> ?fragment:string -> '-> uri
      val a :
        ?a:a_attrib_t ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> a_content_elt_list -> '-> a_elt
      val css_link : ?a:link_attrib_t -> uri:uri -> unit -> link_elt
      val js_script : ?a:script_attrib_t -> uri:uri -> unit -> script_elt
      val get_form :
        ?a:form_attrib_t ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> ('-> form_content_elt_list) -> form_elt
      val post_form :
        ?a:form_attrib_t ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string ->
        ?keep_get_na_params:bool ->
        ('-> form_content_elt_list) -> '-> form_elt
      val int_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< int Eliom_parameters.setoneopt ] Eliom_parameters.param_name ->
        ?value:int -> unit -> input_elt
      val float_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< float Eliom_parameters.setoneopt ]
              Eliom_parameters.param_name ->
        ?value:float -> unit -> input_elt
      val string_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< string Eliom_parameters.setoneopt ]
              Eliom_parameters.param_name ->
        ?value:string -> unit -> input_elt
      val user_type_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< 'Eliom_parameters.setoneopt ] Eliom_parameters.param_name ->
        ?value:'-> ('-> string) -> input_elt
      val raw_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:string -> ?value:string -> unit -> input_elt
      val file_input :
        ?a:input_attrib_t ->
        name:[< Ocsigen_extensions.file_info Eliom_parameters.setoneopt ]
             Eliom_parameters.param_name ->
        unit -> input_elt
      val image_input :
        ?a:input_attrib_t ->
        name:[< Eliom_parameters.coordinates Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        ?src:uri -> unit -> input_elt
      val int_image_input :
        ?a:input_attrib_t ->
        name:[< (int * Eliom_parameters.coordinates) Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        value:int -> ?src:uri -> unit -> input_elt
      val float_image_input :
        ?a:input_attrib_t ->
        name:[< (float * Eliom_parameters.coordinates)
                Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        value:float -> ?src:uri -> unit -> input_elt
      val string_image_input :
        ?a:input_attrib_t ->
        name:[< (string * Eliom_parameters.coordinates)
                Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        value:string -> ?src:uri -> unit -> input_elt
      val user_type_image_input :
        ?a:input_attrib_t ->
        name:[< ('a * Eliom_parameters.coordinates) Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        value:'-> ?src:uri -> ('-> string) -> input_elt
      val raw_image_input :
        ?a:input_attrib_t ->
        name:string -> value:string -> ?src:uri -> unit -> input_elt
      val bool_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `One of bool ] Eliom_parameters.param_name ->
        unit -> input_elt
      val int_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of int ] Eliom_parameters.param_name ->
        value:int -> unit -> input_elt
      val float_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of float ] Eliom_parameters.param_name ->
        value:float -> unit -> input_elt
      val string_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of string ] Eliom_parameters.param_name ->
        value:string -> unit -> input_elt
      val user_type_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of 'a ] Eliom_parameters.param_name ->
        value:'-> ('-> string) -> input_elt
      val raw_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool -> name:string -> value:string -> unit -> input_elt
      val string_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of string ] Eliom_parameters.param_name ->
        value:string -> unit -> input_elt
      val int_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of int ] Eliom_parameters.param_name ->
        value:int -> unit -> input_elt
      val float_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of float ] Eliom_parameters.param_name ->
        value:float -> unit -> input_elt
      val user_type_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of 'a ] Eliom_parameters.param_name ->
        value:'-> ('-> string) -> input_elt
      val raw_radio :
        ?a:input_attrib_t ->
        ?checked:bool -> name:string -> value:string -> unit -> input_elt
      val string_button :
        ?a:button_attrib_t ->
        name:[< string Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:string -> button_content_elt_list -> button_elt
      val int_button :
        ?a:button_attrib_t ->
        name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int -> button_content_elt_list -> button_elt
      val float_button :
        ?a:button_attrib_t ->
        name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:float -> button_content_elt_list -> button_elt
      val user_type_button :
        ?a:button_attrib_t ->
        name:[< 'Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:'-> ('-> string) -> button_content_elt_list -> button_elt
      val raw_button :
        ?a:button_attrib_t ->
        button_type:button_type_t ->
        name:string -> value:string -> button_content_elt_list -> button_elt
      val button :
        ?a:button_attrib_t ->
        button_type:button_type_t -> button_content_elt_list -> button_elt
      val textarea :
        ?a:textarea_attrib_t ->
        name:[< string Eliom_parameters.setoneopt ]
             Eliom_parameters.param_name ->
        ?value:pcdata_elt -> rows:int -> cols:int -> unit -> textarea_elt
      val raw_textarea :
        ?a:textarea_attrib_t ->
        name:string ->
        ?value:pcdata_elt -> rows:int -> cols:int -> unit -> textarea_elt
      type 'a soption = option_attrib_t * 'a * pcdata_elt option * bool
      type 'a select_opt =
          Optgroup of optgroup_attrib_t * string * 'a soption *
            'a soption list
        | Option of 'a soption
      val raw_select :
        ?a:select_attrib_t ->
        name:string ->
        string select_opt -> string select_opt list -> select_elt
      val int_select :
        ?a:select_attrib_t ->
        name:[< `One of int ] Eliom_parameters.param_name ->
        int select_opt -> int select_opt list -> select_elt
      val float_select :
        ?a:select_attrib_t ->
        name:[< `One of float ] Eliom_parameters.param_name ->
        float select_opt -> float select_opt list -> select_elt
      val string_select :
        ?a:select_attrib_t ->
        name:[< `One of string ] Eliom_parameters.param_name ->
        string select_opt -> string select_opt list -> select_elt
      val user_type_select :
        ?a:select_attrib_t ->
        name:[< `One of 'a ] Eliom_parameters.param_name ->
        'a select_opt -> 'a select_opt list -> ('-> string) -> select_elt
      val raw_multiple_select :
        ?a:select_attrib_t ->
        name:string ->
        string select_opt -> string select_opt list -> select_elt
      val int_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of int ] Eliom_parameters.param_name ->
        int select_opt -> int select_opt list -> select_elt
      val float_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of float ] Eliom_parameters.param_name ->
        float select_opt -> float select_opt list -> select_elt
      val string_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of string ] Eliom_parameters.param_name ->
        string select_opt -> string select_opt list -> select_elt
      val user_type_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of 'a ] Eliom_parameters.param_name ->
        'a select_opt -> 'a select_opt list -> ('-> string) -> select_elt
    end
  module Xml :
    sig
      type page = Ocamlduce.Load.anyxml
      type options
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        sp:Eliom_sessions.server_params ->
        page -> Eliom_services.result_to_send Lwt.t
      val register :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        path:Ocsigen_extensions.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_service' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        name:string ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        name:string ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            sp:Eliom_sessions.server_params ->
            page -> Eliom_services.result_to_send Lwt.t
          val register :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            ?options:options ->
            ?session_name:string ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            path:Ocsigen_extensions.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_service' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            name:string ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?session_name:string ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?session_name:string ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            name:string ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?session_name:string ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?session_name:string ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
      type form_content_elt = Xhtmltypes_duce.form_content
      type form_content_elt_list =
          {{Eliom_duce.Blocks.form_content_elt_list}}
      type form_elt = Xhtmltypes_duce.form
      type a_content_elt = Xhtmltypes_duce.a_content
      type a_content_elt_list = {{Eliom_duce.Blocks.a_content_elt_list}}
      type a_elt = Xhtmltypes_duce.a
      type a_elt_list = {{Eliom_duce.Blocks.a_elt_list}}
      type div_content_elt = Xhtmltypes_duce.flows
      type div_content_elt_list = {{Eliom_duce.Blocks.div_content_elt_list}}
      type uri = string
      type link_elt = Xhtmltypes_duce.link
      type script_elt = Xhtmltypes_duce.script
      type textarea_elt = Xhtmltypes_duce.textarea
      type input_elt = Xhtmltypes_duce.input
      type pcdata_elt = {{String}}
      type select_elt = Xhtmltypes_duce.select
      type select_content_elt
      type select_content_elt_list
      type button_elt
      type button_content_elt
      type button_content_elt_list
      type a_attrib_t = Xhtmltypes_duce.a_attrs
      type form_attrib_t = {{Eliom_duce.Blocks.form_attrib_t}}
      type input_attrib_t = Xhtmltypes_duce.input_attrs
      type textarea_attrib_t = {{Eliom_duce.Blocks.textarea_attrib_t}}
      type select_attrib_t = Xhtmltypes_duce.select_attrs
      type link_attrib_t = Xhtmltypes_duce.link_attrs
      type script_attrib_t = {{Eliom_duce.Blocks.script_attrib_t}}
      type optgroup_attrib_t
      type option_attrib_t
      type button_attrib_t
      type input_type_t = Xhtmltypes_duce.input_type_values
      type button_type_t
      val make_full_string_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> '-> uri Lwt.t
      val make_string_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params -> ?fragment:string -> '-> string
      val make_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params -> ?fragment:string -> '-> uri
      val a :
        ?a:a_attrib_t ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> a_content_elt_list -> '-> a_elt
      val css_link : ?a:link_attrib_t -> uri:uri -> unit -> link_elt
      val js_script : ?a:script_attrib_t -> uri:uri -> unit -> script_elt
      val get_form :
        ?a:form_attrib_t ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> ('-> form_content_elt_list) -> form_elt
      val post_form :
        ?a:form_attrib_t ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string ->
        ?keep_get_na_params:bool ->
        ('-> form_content_elt_list) -> '-> form_elt
      val int_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< int Eliom_parameters.setoneopt ] Eliom_parameters.param_name ->
        ?value:int -> unit -> input_elt
      val float_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< float Eliom_parameters.setoneopt ]
              Eliom_parameters.param_name ->
        ?value:float -> unit -> input_elt
      val string_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< string Eliom_parameters.setoneopt ]
              Eliom_parameters.param_name ->
        ?value:string -> unit -> input_elt
      val user_type_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< 'Eliom_parameters.setoneopt ] Eliom_parameters.param_name ->
        ?value:'-> ('-> string) -> input_elt
      val raw_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:string -> ?value:string -> unit -> input_elt
      val file_input :
        ?a:input_attrib_t ->
        name:[< Ocsigen_extensions.file_info Eliom_parameters.setoneopt ]
             Eliom_parameters.param_name ->
        unit -> input_elt
      val image_input :
        ?a:input_attrib_t ->
        name:[< Eliom_parameters.coordinates Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        ?src:uri -> unit -> input_elt
      val int_image_input :
        ?a:input_attrib_t ->
        name:[< (int * Eliom_parameters.coordinates) Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        value:int -> ?src:uri -> unit -> input_elt
      val float_image_input :
        ?a:input_attrib_t ->
        name:[< (float * Eliom_parameters.coordinates)
                Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        value:float -> ?src:uri -> unit -> input_elt
      val string_image_input :
        ?a:input_attrib_t ->
        name:[< (string * Eliom_parameters.coordinates)
                Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        value:string -> ?src:uri -> unit -> input_elt
      val user_type_image_input :
        ?a:input_attrib_t ->
        name:[< ('a * Eliom_parameters.coordinates) Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        value:'-> ?src:uri -> ('-> string) -> input_elt
      val raw_image_input :
        ?a:input_attrib_t ->
        name:string -> value:string -> ?src:uri -> unit -> input_elt
      val bool_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `One of bool ] Eliom_parameters.param_name ->
        unit -> input_elt
      val int_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of int ] Eliom_parameters.param_name ->
        value:int -> unit -> input_elt
      val float_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of float ] Eliom_parameters.param_name ->
        value:float -> unit -> input_elt
      val string_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of string ] Eliom_parameters.param_name ->
        value:string -> unit -> input_elt
      val user_type_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of 'a ] Eliom_parameters.param_name ->
        value:'-> ('-> string) -> input_elt
      val raw_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool -> name:string -> value:string -> unit -> input_elt
      val string_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of string ] Eliom_parameters.param_name ->
        value:string -> unit -> input_elt
      val int_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of int ] Eliom_parameters.param_name ->
        value:int -> unit -> input_elt
      val float_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of float ] Eliom_parameters.param_name ->
        value:float -> unit -> input_elt
      val user_type_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of 'a ] Eliom_parameters.param_name ->
        value:'-> ('-> string) -> input_elt
      val raw_radio :
        ?a:input_attrib_t ->
        ?checked:bool -> name:string -> value:string -> unit -> input_elt
      val string_button :
        ?a:button_attrib_t ->
        name:[< string Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:string -> button_content_elt_list -> button_elt
      val int_button :
        ?a:button_attrib_t ->
        name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int -> button_content_elt_list -> button_elt
      val float_button :
        ?a:button_attrib_t ->
        name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:float -> button_content_elt_list -> button_elt
      val user_type_button :
        ?a:button_attrib_t ->
        name:[< 'Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:'-> ('-> string) -> button_content_elt_list -> button_elt
      val raw_button :
        ?a:button_attrib_t ->
        button_type:button_type_t ->
        name:string -> value:string -> button_content_elt_list -> button_elt
      val button :
        ?a:button_attrib_t ->
        button_type:button_type_t -> button_content_elt_list -> button_elt
      val textarea :
        ?a:textarea_attrib_t ->
        name:[< string Eliom_parameters.setoneopt ]
             Eliom_parameters.param_name ->
        ?value:pcdata_elt -> rows:int -> cols:int -> unit -> textarea_elt
      val raw_textarea :
        ?a:textarea_attrib_t ->
        name:string ->
        ?value:pcdata_elt -> rows:int -> cols:int -> unit -> textarea_elt
      type 'a soption = option_attrib_t * 'a * pcdata_elt option * bool
      type 'a select_opt =
          Optgroup of optgroup_attrib_t * string * 'a soption *
            'a soption list
        | Option of 'a soption
      val raw_select :
        ?a:select_attrib_t ->
        name:string ->
        string select_opt -> string select_opt list -> select_elt
      val int_select :
        ?a:select_attrib_t ->
        name:[< `One of int ] Eliom_parameters.param_name ->
        int select_opt -> int select_opt list -> select_elt
      val float_select :
        ?a:select_attrib_t ->
        name:[< `One of float ] Eliom_parameters.param_name ->
        float select_opt -> float select_opt list -> select_elt
      val string_select :
        ?a:select_attrib_t ->
        name:[< `One of string ] Eliom_parameters.param_name ->
        string select_opt -> string select_opt list -> select_elt
      val user_type_select :
        ?a:select_attrib_t ->
        name:[< `One of 'a ] Eliom_parameters.param_name ->
        'a select_opt -> 'a select_opt list -> ('-> string) -> select_elt
      val raw_multiple_select :
        ?a:select_attrib_t ->
        name:string ->
        string select_opt -> string select_opt list -> select_elt
      val int_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of int ] Eliom_parameters.param_name ->
        int select_opt -> int select_opt list -> select_elt
      val float_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of float ] Eliom_parameters.param_name ->
        float select_opt -> float select_opt list -> select_elt
      val string_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of string ] Eliom_parameters.param_name ->
        string select_opt -> string select_opt list -> select_elt
      val user_type_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of 'a ] Eliom_parameters.param_name ->
        'a select_opt -> 'a select_opt list -> ('-> string) -> select_elt
    end
  module Xmllist :
    sig
      type page = Ocamlduce.Load.anyxml list
      type options
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        sp:Eliom_sessions.server_params ->
        page -> Eliom_services.result_to_send Lwt.t
      val register :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        path:Ocsigen_extensions.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_service' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        name:string ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        name:string ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            sp:Eliom_sessions.server_params ->
            page -> Eliom_services.result_to_send Lwt.t
          val register :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            ?options:options ->
            ?session_name:string ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            path:Ocsigen_extensions.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_service' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            name:string ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?session_name:string ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?session_name:string ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            name:string ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?session_name:string ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?session_name:string ->
            sp:Eliom_sessions.server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
      type form_content_elt = Xhtmltypes_duce.form_content
      type form_content_elt_list =
          {{Eliom_duce.Blocks.form_content_elt_list}}
      type form_elt = Xhtmltypes_duce.form
      type a_content_elt = Xhtmltypes_duce.a_content
      type a_content_elt_list = {{Eliom_duce.Blocks.a_content_elt_list}}
      type a_elt = Xhtmltypes_duce.a
      type a_elt_list = {{Eliom_duce.Blocks.a_elt_list}}
      type div_content_elt = Xhtmltypes_duce.flows
      type div_content_elt_list = {{Eliom_duce.Blocks.div_content_elt_list}}
      type uri = string
      type link_elt = Xhtmltypes_duce.link
      type script_elt = Xhtmltypes_duce.script
      type textarea_elt = Xhtmltypes_duce.textarea
      type input_elt = Xhtmltypes_duce.input
      type pcdata_elt = {{String}}
      type select_elt = Xhtmltypes_duce.select
      type select_content_elt
      type select_content_elt_list
      type button_elt
      type button_content_elt
      type button_content_elt_list
      type a_attrib_t = Xhtmltypes_duce.a_attrs
      type form_attrib_t = {{Eliom_duce.Blocks.form_attrib_t}}
      type input_attrib_t = Xhtmltypes_duce.input_attrs
      type textarea_attrib_t = {{Eliom_duce.Blocks.textarea_attrib_t}}
      type select_attrib_t = Xhtmltypes_duce.select_attrs
      type link_attrib_t = Xhtmltypes_duce.link_attrs
      type script_attrib_t = {{Eliom_duce.Blocks.script_attrib_t}}
      type optgroup_attrib_t
      type option_attrib_t
      type button_attrib_t
      type input_type_t = Xhtmltypes_duce.input_type_values
      type button_type_t
      val make_full_string_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> '-> uri Lwt.t
      val make_string_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params -> ?fragment:string -> '-> string
      val make_uri :
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params -> ?fragment:string -> '-> uri
      val a :
        ?a:a_attrib_t ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> a_content_elt_list -> '-> a_elt
      val css_link : ?a:link_attrib_t -> uri:uri -> unit -> link_elt
      val js_script : ?a:script_attrib_t -> uri:uri -> unit -> script_elt
      val get_form :
        ?a:form_attrib_t ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string -> ('-> form_content_elt_list) -> form_elt
      val post_form :
        ?a:form_attrib_t ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?fragment:string ->
        ?keep_get_na_params:bool ->
        ('-> form_content_elt_list) -> '-> form_elt
      val int_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< int Eliom_parameters.setoneopt ] Eliom_parameters.param_name ->
        ?value:int -> unit -> input_elt
      val float_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< float Eliom_parameters.setoneopt ]
              Eliom_parameters.param_name ->
        ?value:float -> unit -> input_elt
      val string_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< string Eliom_parameters.setoneopt ]
              Eliom_parameters.param_name ->
        ?value:string -> unit -> input_elt
      val user_type_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< 'Eliom_parameters.setoneopt ] Eliom_parameters.param_name ->
        ?value:'-> ('-> string) -> input_elt
      val raw_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:string -> ?value:string -> unit -> input_elt
      val file_input :
        ?a:input_attrib_t ->
        name:[< Ocsigen_extensions.file_info Eliom_parameters.setoneopt ]
             Eliom_parameters.param_name ->
        unit -> input_elt
      val image_input :
        ?a:input_attrib_t ->
        name:[< Eliom_parameters.coordinates Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        ?src:uri -> unit -> input_elt
      val int_image_input :
        ?a:input_attrib_t ->
        name:[< (int * Eliom_parameters.coordinates) Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        value:int -> ?src:uri -> unit -> input_elt
      val float_image_input :
        ?a:input_attrib_t ->
        name:[< (float * Eliom_parameters.coordinates)
                Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        value:float -> ?src:uri -> unit -> input_elt
      val string_image_input :
        ?a:input_attrib_t ->
        name:[< (string * Eliom_parameters.coordinates)
                Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        value:string -> ?src:uri -> unit -> input_elt
      val user_type_image_input :
        ?a:input_attrib_t ->
        name:[< ('a * Eliom_parameters.coordinates) Eliom_parameters.oneopt ]
             Eliom_parameters.param_name ->
        value:'-> ?src:uri -> ('-> string) -> input_elt
      val raw_image_input :
        ?a:input_attrib_t ->
        name:string -> value:string -> ?src:uri -> unit -> input_elt
      val bool_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `One of bool ] Eliom_parameters.param_name ->
        unit -> input_elt
      val int_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of int ] Eliom_parameters.param_name ->
        value:int -> unit -> input_elt
      val float_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of float ] Eliom_parameters.param_name ->
        value:float -> unit -> input_elt
      val string_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of string ] Eliom_parameters.param_name ->
        value:string -> unit -> input_elt
      val user_type_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of 'a ] Eliom_parameters.param_name ->
        value:'-> ('-> string) -> input_elt
      val raw_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool -> name:string -> value:string -> unit -> input_elt
      val string_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of string ] Eliom_parameters.param_name ->
        value:string -> unit -> input_elt
      val int_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of int ] Eliom_parameters.param_name ->
        value:int -> unit -> input_elt
      val float_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of float ] Eliom_parameters.param_name ->
        value:float -> unit -> input_elt
      val user_type_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Opt of 'a ] Eliom_parameters.param_name ->
        value:'-> ('-> string) -> input_elt
      val raw_radio :
        ?a:input_attrib_t ->
        ?checked:bool -> name:string -> value:string -> unit -> input_elt
      val string_button :
        ?a:button_attrib_t ->
        name:[< string Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:string -> button_content_elt_list -> button_elt
      val int_button :
        ?a:button_attrib_t ->
        name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int -> button_content_elt_list -> button_elt
      val float_button :
        ?a:button_attrib_t ->
        name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:float -> button_content_elt_list -> button_elt
      val user_type_button :
        ?a:button_attrib_t ->
        name:[< 'Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:'-> ('-> string) -> button_content_elt_list -> button_elt
      val raw_button :
        ?a:button_attrib_t ->
        button_type:button_type_t ->
        name:string -> value:string -> button_content_elt_list -> button_elt
      val button :
        ?a:button_attrib_t ->
        button_type:button_type_t -> button_content_elt_list -> button_elt
      val textarea :
        ?a:textarea_attrib_t ->
        name:[< string Eliom_parameters.setoneopt ]
             Eliom_parameters.param_name ->
        ?value:pcdata_elt -> rows:int -> cols:int -> unit -> textarea_elt
      val raw_textarea :
        ?a:textarea_attrib_t ->
        name:string ->
        ?value:pcdata_elt -> rows:int -> cols:int -> unit -> textarea_elt
      type 'a soption = option_attrib_t * 'a * pcdata_elt option * bool
      type 'a select_opt =
          Optgroup of optgroup_attrib_t * string * 'a soption *
            'a soption list
        | Option of 'a soption
      val raw_select :
        ?a:select_attrib_t ->
        name:string ->
        string select_opt -> string select_opt list -> select_elt
      val int_select :
        ?a:select_attrib_t ->
        name:[< `One of int ] Eliom_parameters.param_name ->
        int select_opt -> int select_opt list -> select_elt
      val float_select :
        ?a:select_attrib_t ->
        name:[< `One of float ] Eliom_parameters.param_name ->
        float select_opt -> float select_opt list -> select_elt
      val string_select :
        ?a:select_attrib_t ->
        name:[< `One of string ] Eliom_parameters.param_name ->
        string select_opt -> string select_opt list -> select_elt
      val user_type_select :
        ?a:select_attrib_t ->
        name:[< `One of 'a ] Eliom_parameters.param_name ->
        'a select_opt -> 'a select_opt list -> ('-> string) -> select_elt
      val raw_multiple_select :
        ?a:select_attrib_t ->
        name:string ->
        string select_opt -> string select_opt list -> select_elt
      val int_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of int ] Eliom_parameters.param_name ->
        int select_opt -> int select_opt list -> select_elt
      val float_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of float ] Eliom_parameters.param_name ->
        float select_opt -> float select_opt list -> select_elt
      val string_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of string ] Eliom_parameters.param_name ->
        string select_opt -> string select_opt list -> select_elt
      val user_type_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of 'a ] Eliom_parameters.param_name ->
        'a select_opt -> 'a select_opt list -> ('-> string) -> select_elt
    end
  module Blocks :
    sig
      type page = Xhtmltypes_duce.blocks
      type options
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        sp:Eliom_sessions.server_params ->
        page -> Eliom_services.result_to_send Lwt.t
      val register :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        path:Ocsigen_extensions.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_service' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        name:string ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        name:string ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?session_name:string ->
        sp:Eliom_sessions.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            sp:Eliom_sessions.server_params ->
            page -> Eliom_services.result_to_send Lwt.t
          val register :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            ?options:options ->
            ?session_name:string ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
            path:Ocsigen_extensions.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_service' :
            ?options:options ->
            ?sp:Eliom_sessions.server_params ->
           &nbs