sig
  module type ELIOMSIG =
    sig
      type page
      type options
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        sp:Eliom_sessions.server_params ->
        page -> Ocsigen_http_frame.result Lwt.t
      val register :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?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 ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_lib.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            sp:Eliom_sessions.server_params ->
            page -> Ocsigen_http_frame.result Lwt.t
          val register :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?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 ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_lib.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
      type form_content_elt
      type form_content_elt_list
      type form_elt
      type a_content_elt
      type a_content_elt_list
      type a_elt
      type a_elt_list
      type div_content_elt
      type div_content_elt_list
      type uri
      type link_elt
      type script_elt
      type textarea_elt
      type input_elt
      type pcdata_elt
      type select_elt
      type select_content_elt
      type select_content_elt_list
      type option_elt
      type option_elt_list
      type button_elt
      type button_content_elt
      type button_content_elt_list
      type a_attrib_t
      type form_attrib_t
      type input_attrib_t
      type textarea_attrib_t
      type select_attrib_t
      type link_attrib_t
      type script_attrib_t
      type optgroup_attrib_t
      type option_attrib_t
      type button_attrib_t
      type input_type_t
      type button_type_t
      val make_string_uri :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set -> '-> string
      val make_uri :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set -> '-> uri
      val make_uri_components :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        '-> string * (string * string) list * string option
      val make_post_uri_components :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ?keep_get_na_params:bool ->
        '->
        '->
        string * (string * string) list * string option *
        (string * string) list
      val make_proto_prefix :
        sp:Eliom_sessions.server_params ->
        ?hostname:string -> ?port:int -> bool -> string
      val a :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:a_attrib_t ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        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 :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:form_attrib_t ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> form_content_elt_list) -> form_elt
      val lwt_get_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:form_attrib_t ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> form_content_elt_list Lwt.t) -> form_elt Lwt.t
      val post_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:form_attrib_t ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?keep_get_na_params:bool ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> form_content_elt_list) -> '-> form_elt
      val lwt_post_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:form_attrib_t ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?keep_get_na_params:bool ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> form_content_elt_list Lwt.t) -> '-> form_elt Lwt.t
      val int_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< int Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int -> unit -> input_elt
      val int32_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< int32 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int32 -> unit -> input_elt
      val int64_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< int64 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int64 -> unit -> input_elt
      val float_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< float Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:float -> unit -> input_elt
      val string_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< string Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:string -> unit -> input_elt
      val user_type_input :
        ('-> string) ->
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< 'Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:'-> unit -> 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_lib.file_info Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        unit -> input_elt
      val image_input :
        ?a:input_attrib_t ->
        name:[< Eliom_parameters.coordinates Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        ?src:uri -> unit -> input_elt
      val int_image_input :
        ?a:input_attrib_t ->
        name:[< (int * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int -> ?src:uri -> unit -> input_elt
      val int32_image_input :
        ?a:input_attrib_t ->
        name:[< (int32 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int32 -> ?src:uri -> unit -> input_elt
      val int64_image_input :
        ?a:input_attrib_t ->
        name:[< (int64 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int64 -> ?src:uri -> unit -> input_elt
      val float_image_input :
        ?a:input_attrib_t ->
        name:[< (float * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:float -> ?src:uri -> unit -> input_elt
      val string_image_input :
        ?a:input_attrib_t ->
        name:[< (string * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:string -> ?src:uri -> unit -> input_elt
      val user_type_image_input :
        ('-> string) ->
        ?a:input_attrib_t ->
        name:[< ('a * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:'-> ?src:uri -> unit -> input_elt
      val raw_image_input :
        ?a:input_attrib_t ->
        name:string -> value:string -> ?src:uri -> unit -> input_elt
      val bool_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `One of bool ] Eliom_parameters.param_name ->
        unit -> input_elt
      val int_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of int ] Eliom_parameters.param_name ->
        value:int -> unit -> input_elt
      val int32_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> input_elt
      val int64_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> input_elt
      val float_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of float ] Eliom_parameters.param_name ->
        value:float -> unit -> input_elt
      val string_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of string ] Eliom_parameters.param_name ->
        value:string -> unit -> input_elt
      val user_type_checkbox :
        ('-> string) ->
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of 'a ] Eliom_parameters.param_name ->
        value:'-> unit -> input_elt
      val raw_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool -> name:string -> value:string -> unit -> input_elt
      val string_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of string ] Eliom_parameters.param_name ->
        value:string -> unit -> input_elt
      val int_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of int ] Eliom_parameters.param_name ->
        value:int -> unit -> input_elt
      val int32_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> input_elt
      val int64_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> input_elt
      val float_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of float ] Eliom_parameters.param_name ->
        value:float -> unit -> input_elt
      val user_type_radio :
        ('-> string) ->
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of 'a ] Eliom_parameters.param_name ->
        value:'-> unit -> input_elt
      val raw_radio :
        ?a:input_attrib_t ->
        ?checked:bool -> name:string -> value:string -> unit -> input_elt
      val string_button :
        ?a:button_attrib_t ->
        name:[< string Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:string -> button_content_elt_list -> button_elt
      val int_button :
        ?a:button_attrib_t ->
        name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int -> button_content_elt_list -> button_elt
      val int32_button :
        ?a:button_attrib_t ->
        name:[< int32 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int32 -> button_content_elt_list -> button_elt
      val int64_button :
        ?a:button_attrib_t ->
        name:[< int64 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int64 -> button_content_elt_list -> button_elt
      val float_button :
        ?a:button_attrib_t ->
        name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:float -> button_content_elt_list -> button_elt
      val user_type_button :
        ('-> string) ->
        ?a:button_attrib_t ->
        name:[< 'Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:'-> button_content_elt_list -> button_elt
      val raw_button :
        ?a:button_attrib_t ->
        button_type:button_type_t ->
        name:string -> value:string -> button_content_elt_list -> button_elt
      val button :
        ?a:button_attrib_t ->
        button_type:button_type_t -> button_content_elt_list -> button_elt
      val textarea :
        ?a:textarea_attrib_t ->
        name:[< string Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        ?value:string -> rows:int -> cols:int -> unit -> textarea_elt
      val raw_textarea :
        ?a:textarea_attrib_t ->
        name:string ->
        ?value:string -> rows:int -> cols:int -> unit -> textarea_elt
      type 'a soption = option_attrib_t * 'a * pcdata_elt option * bool
      type 'a select_opt =
          Optgroup of optgroup_attrib_t * string * 'a soption *
            'a soption list
        | Option of 'a soption
      val raw_select :
        ?a:select_attrib_t ->
        name:string ->
        string select_opt -> string select_opt list -> select_elt
      val int_select :
        ?a:select_attrib_t ->
        name:[< `One of int ] Eliom_parameters.param_name ->
        int select_opt -> int select_opt list -> select_elt
      val int32_select :
        ?a:select_attrib_t ->
        name:[< `One of int32 ] Eliom_parameters.param_name ->
        int32 select_opt -> int32 select_opt list -> select_elt
      val int64_select :
        ?a:select_attrib_t ->
        name:[< `One of int64 ] Eliom_parameters.param_name ->
        int64 select_opt -> int64 select_opt list -> select_elt
      val float_select :
        ?a:select_attrib_t ->
        name:[< `One of float ] Eliom_parameters.param_name ->
        float select_opt -> float select_opt list -> select_elt
      val string_select :
        ?a:select_attrib_t ->
        name:[< `One of string ] Eliom_parameters.param_name ->
        string select_opt -> string select_opt list -> select_elt
      val user_type_select :
        ('-> string) ->
        ?a:select_attrib_t ->
        name:[< `One of 'a ] Eliom_parameters.param_name ->
        'a select_opt -> 'a select_opt list -> select_elt
      val raw_multiple_select :
        ?a:select_attrib_t ->
        name:string ->
        string select_opt -> string select_opt list -> select_elt
      val int_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of int ] Eliom_parameters.param_name ->
        int select_opt -> int select_opt list -> select_elt
      val int32_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of int32 ] Eliom_parameters.param_name ->
        int32 select_opt -> int32 select_opt list -> select_elt
      val int64_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of int64 ] Eliom_parameters.param_name ->
        int64 select_opt -> int64 select_opt list -> select_elt
      val float_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of float ] Eliom_parameters.param_name ->
        float select_opt -> float select_opt list -> select_elt
      val string_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of string ] Eliom_parameters.param_name ->
        string select_opt -> string select_opt list -> select_elt
      val user_type_multiple_select :
        ('-> string) ->
        ?a:select_attrib_t ->
        name:[< `Set of 'a ] Eliom_parameters.param_name ->
        'a select_opt -> 'a select_opt list -> select_elt
    end
  module type XHTMLFORMSSIG =
    sig
      val make_string_uri :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set -> '-> string
      val make_uri :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set -> '-> XHTML.M.uri
      val make_uri_components :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        '-> string * (string * string) list * string option
      val make_post_uri_components :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ?keep_get_na_params:bool ->
        '->
        '->
        string * (string * string) list * string option *
        (string * string) list
      val make_proto_prefix :
        sp:Eliom_sessions.server_params ->
        ?hostname:string -> ?port:int -> bool -> string
      val a :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.a_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        Xhtmltypes.a_content XHTML.M.elt list ->
        '-> [> Xhtmltypes.a ] XHTML.M.elt
      val css_link :
        ?a:Xhtmltypes.link_attrib XHTML.M.attrib list ->
        uri:XHTML.M.uri -> unit -> [> Xhtmltypes.link ] XHTML.M.elt
      val js_script :
        ?a:Xhtmltypes.script_attrib XHTML.M.attrib list ->
        uri:XHTML.M.uri -> unit -> [> Xhtmltypes.script ] XHTML.M.elt
      val get_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        [> Xhtmltypes.form ] XHTML.M.elt
      val lwt_get_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
        [> Xhtmltypes.form ] XHTML.M.elt Lwt.t
      val post_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?keep_get_na_params:bool ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        '-> [> Xhtmltypes.form ] XHTML.M.elt
      val lwt_post_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?keep_get_na_params:bool ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
        '-> [> Xhtmltypes.form ] XHTML.M.elt Lwt.t
      type basic_input_type = [ `Hidden | `Password | `Submit | `Text ]
      val int_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< Eliom_predefmod.XHTMLFORMSSIG.basic_input_type ] ->
        ?name:[< int Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< Eliom_predefmod.XHTMLFORMSSIG.basic_input_type ] ->
        ?name:[< int32 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< Eliom_predefmod.XHTMLFORMSSIG.basic_input_type ] ->
        ?name:[< int64 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< Eliom_predefmod.XHTMLFORMSSIG.basic_input_type ] ->
        ?name:[< float Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< Eliom_predefmod.XHTMLFORMSSIG.basic_input_type ] ->
        ?name:[< string Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_input :
        ('-> string) ->
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< Eliom_predefmod.XHTMLFORMSSIG.basic_input_type ] ->
        ?name:[< 'Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:'-> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< `Button
                    | `Hidden
                    | `Password
                    | `Reset
                    | `Submit
                    | `Text ] ->
        ?name:string ->
        ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val file_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< Ocsigen_lib.file_info Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< Eliom_parameters.coordinates Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int32 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int32 ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int64 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int64 ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (float * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:float ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (string * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:string ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_image_input :
        ('-> string) ->
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< ('a * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:'->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:string ->
        value:string ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val bool_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `One of bool ] Eliom_parameters.param_name ->
        unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int ] Eliom_parameters.param_name ->
        value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of float ] Eliom_parameters.param_name ->
        value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of string ] Eliom_parameters.param_name ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_checkbox :
        ('-> string) ->
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of 'a ] Eliom_parameters.param_name ->
        value:'-> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:string ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of string ] Eliom_parameters.param_name ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int ] Eliom_parameters.param_name ->
        value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of float ] Eliom_parameters.param_name ->
        value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_radio :
        ('-> string) ->
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of 'a ] Eliom_parameters.param_name ->
        value:'-> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:string ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      type button_type = [ `Button | `Reset | `Submit ]
      val string_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< string Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:string ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int32_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int32 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int32 ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int64_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int64 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int64 ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val float_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:float ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val user_type_button :
        ('-> string) ->
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< 'Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:'->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val raw_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        button_type:[< Eliom_predefmod.XHTMLFORMSSIG.button_type ] ->
        name:string ->
        value:string ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        button_type:[< Eliom_predefmod.XHTMLFORMSSIG.button_type ] ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val textarea :
        ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
        name:[< string Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        ?value:string ->
        rows:int -> cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
      val raw_textarea :
        ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
        name:string ->
        ?value:string ->
        rows:int -> cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
      type 'a soption =
          Xhtmltypes.option_attrib XHTML.M.attrib list * 'a *
          Xhtmltypes.pcdata XHTML.M.elt option * bool
      type 'a select_opt =
          Optgroup of
            [ `Class
            | `Disabled
            | `Id
            | `OnClick
            | `OnDblClick
            | `OnKeyDown
            | `OnKeyPress
            | `OnKeyUp
            | `OnMouseDown
            | `OnMouseMove
            | `OnMouseOut
            | `OnMouseOver
            | `OnMouseUp
            | `Style_Attr
            | `Title
            | `XML_lang ] XHTML.M.attrib list * string *
            'Eliom_predefmod.XHTMLFORMSSIG.soption *
            'Eliom_predefmod.XHTMLFORMSSIG.soption list
        | Option of 'Eliom_predefmod.XHTMLFORMSSIG.soption
      val int_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int ] Eliom_parameters.param_name ->
        int Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        int Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
      val int32_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int32 ] Eliom_parameters.param_name ->
        int32 Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        int32 Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
      val int64_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int64 ] Eliom_parameters.param_name ->
        int64 Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        int64 Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
      val float_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of float ] Eliom_parameters.param_name ->
        float Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        float Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
      val string_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of string ] Eliom_parameters.param_name ->
        string Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        string Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
      val user_type_select :
        ('-> string) ->
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of 'a ] Eliom_parameters.param_name ->
        'Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        'Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
      val raw_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:string ->
        string Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        string Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
      val int_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int ] Eliom_parameters.param_name ->
        int Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        int Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
      val int32_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int32 ] Eliom_parameters.param_name ->
        int32 Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        int32 Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
      val int64_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int64 ] Eliom_parameters.param_name ->
        int64 Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        int64 Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
      val float_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of float ] Eliom_parameters.param_name ->
        float Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        float Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
      val string_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of string ] Eliom_parameters.param_name ->
        string Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        string Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
      val user_type_multiple_select :
        ('-> string) ->
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of 'a ] Eliom_parameters.param_name ->
        'Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        'Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
      val raw_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:string ->
        string Eliom_predefmod.XHTMLFORMSSIG.select_opt ->
        string Eliom_predefmod.XHTMLFORMSSIG.select_opt list ->
        [> Xhtmltypes.select ] XHTML.M.elt
    end
  module Xhtml :
    sig
      type page = Xhtmltypes.xhtml XHTML.M.elt
      type options = XHTML.M.doctypes
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        sp:Eliom_sessions.server_params ->
        page -> Ocsigen_http_frame.result Lwt.t
      val register :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?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 ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_lib.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            sp:Eliom_sessions.server_params ->
            page -> Ocsigen_http_frame.result Lwt.t
          val register :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?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 ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_lib.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
      val make_string_uri :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set -> '-> string
      val make_uri :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set -> '-> XHTML.M.uri
      val make_uri_components :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        '-> string * (string * string) list * string option
      val make_post_uri_components :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ?keep_get_na_params:bool ->
        '->
        '->
        string * (string * string) list * string option *
        (string * string) list
      val make_proto_prefix :
        sp:Eliom_sessions.server_params ->
        ?hostname:string -> ?port:int -> bool -> string
      val a :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.a_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        Xhtmltypes.a_content XHTML.M.elt list ->
        '-> [> Xhtmltypes.a ] XHTML.M.elt
      val css_link :
        ?a:Xhtmltypes.link_attrib XHTML.M.attrib list ->
        uri:XHTML.M.uri -> unit -> [> Xhtmltypes.link ] XHTML.M.elt
      val js_script :
        ?a:Xhtmltypes.script_attrib XHTML.M.attrib list ->
        uri:XHTML.M.uri -> unit -> [> Xhtmltypes.script ] XHTML.M.elt
      val get_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        [> Xhtmltypes.form ] XHTML.M.elt
      val lwt_get_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
        [> Xhtmltypes.form ] XHTML.M.elt Lwt.t
      val post_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?keep_get_na_params:bool ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        '-> [> Xhtmltypes.form ] XHTML.M.elt
      val lwt_post_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?keep_get_na_params:bool ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
        '-> [> Xhtmltypes.form ] XHTML.M.elt Lwt.t
      type basic_input_type = [ `Hidden | `Password | `Submit | `Text ]
      val int_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< int Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< int32 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< int64 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< float Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< string Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_input :
        ('-> string) ->
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< 'Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:'-> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< `Button
                    | `Hidden
                    | `Password
                    | `Reset
                    | `Submit
                    | `Text ] ->
        ?name:string ->
        ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val file_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< Ocsigen_lib.file_info Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< Eliom_parameters.coordinates Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int32 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int32 ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int64 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int64 ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (float * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:float ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (string * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:string ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_image_input :
        ('-> string) ->
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< ('a * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:'->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:string ->
        value:string ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val bool_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `One of bool ] Eliom_parameters.param_name ->
        unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int ] Eliom_parameters.param_name ->
        value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of float ] Eliom_parameters.param_name ->
        value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of string ] Eliom_parameters.param_name ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_checkbox :
        ('-> string) ->
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of 'a ] Eliom_parameters.param_name ->
        value:'-> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:string ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of string ] Eliom_parameters.param_name ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int ] Eliom_parameters.param_name ->
        value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of float ] Eliom_parameters.param_name ->
        value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_radio :
        ('-> string) ->
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of 'a ] Eliom_parameters.param_name ->
        value:'-> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:string ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      type button_type = [ `Button | `Reset | `Submit ]
      val string_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< string Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:string ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int32_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int32 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int32 ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int64_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int64 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int64 ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val float_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:float ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val user_type_button :
        ('-> string) ->
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< 'Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:'->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val raw_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        button_type:[< button_type ] ->
        name:string ->
        value:string ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        button_type:[< button_type ] ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val textarea :
        ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
        name:[< string Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        ?value:string ->
        rows:int -> cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
      val raw_textarea :
        ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
        name:string ->
        ?value:string ->
        rows:int -> cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
      type 'a soption =
          Xhtmltypes.option_attrib XHTML.M.attrib list * 'a *
          Xhtmltypes.pcdata XHTML.M.elt option * bool
      type 'a select_opt =
          Optgroup of
            [ `Class
            | `Disabled
            | `Id
            | `OnClick
            | `OnDblClick
            | `OnKeyDown
            | `OnKeyPress
            | `OnKeyUp
            | `OnMouseDown
            | `OnMouseMove
            | `OnMouseOut
            | `OnMouseOver
            | `OnMouseUp
            | `Style_Attr
            | `Title
            | `XML_lang ] XHTML.M.attrib list * string * 'a soption *
            'a soption list
        | Option of 'a soption
      val int_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int ] Eliom_parameters.param_name ->
        int select_opt ->
        int select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int32_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int32 ] Eliom_parameters.param_name ->
        int32 select_opt ->
        int32 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int64_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int64 ] Eliom_parameters.param_name ->
        int64 select_opt ->
        int64 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val float_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of float ] Eliom_parameters.param_name ->
        float select_opt ->
        float select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val string_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of string ] Eliom_parameters.param_name ->
        string select_opt ->
        string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val user_type_select :
        ('-> string) ->
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of 'a ] Eliom_parameters.param_name ->
        'a select_opt ->
        'a select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val raw_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:string ->
        string select_opt ->
        string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int ] Eliom_parameters.param_name ->
        int select_opt ->
        int select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int32_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int32 ] Eliom_parameters.param_name ->
        int32 select_opt ->
        int32 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int64_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int64 ] Eliom_parameters.param_name ->
        int64 select_opt ->
        int64 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val float_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of float ] Eliom_parameters.param_name ->
        float select_opt ->
        float select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val string_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of string ] Eliom_parameters.param_name ->
        string select_opt ->
        string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val user_type_multiple_select :
        ('-> string) ->
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of 'a ] Eliom_parameters.param_name ->
        'a select_opt ->
        'a select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val raw_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:string ->
        string select_opt ->
        string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
    end
  module Xhtmlforms : XHTMLFORMSSIG
  module Xhtmlreg :
    sig
      type page = Xhtmltypes.xhtml XHTML.M.elt
      type options = XHTML.M.doctypes
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        sp:Eliom_sessions.server_params ->
        page -> Ocsigen_http_frame.result Lwt.t
      val register :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?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 ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_lib.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            sp:Eliom_sessions.server_params ->
            page -> Ocsigen_http_frame.result Lwt.t
          val register :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?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 ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_lib.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
    end
  module Xhtmlreg_ :
    functor
      (Xhtml_content : sig
                         type t = [ `Html ] XHTML.M.elt
                         type options = XHTML.M.doctypes
                         val result_of_content :
                           ?options:options ->
                           t -> Ocsigen_http_frame.result Lwt.t
                         val get_etag : t -> Ocsigen_http_frame.etag option
                       end->
      sig
        type page = Xhtml_content.t
        type options = XHTML.M.doctypes
        val send :
          ?options:options ->
          ?cookies:Eliom_services.cookie list ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          sp:Eliom_sessions.server_params ->
          page -> Ocsigen_http_frame.result Lwt.t
      end
  module Xhtmlcompact :
    sig
      type page = Xhtmltypes.xhtml XHTML.M.elt
      type options = XHTML.M.doctypes
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        sp:Eliom_sessions.server_params ->
        page -> Ocsigen_http_frame.result Lwt.t
      val register :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?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 ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_lib.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            sp:Eliom_sessions.server_params ->
            page -> Ocsigen_http_frame.result Lwt.t
          val register :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?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 ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_lib.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
      val make_string_uri :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set -> '-> string
      val make_uri :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set -> '-> XHTML.M.uri
      val make_uri_components :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        '-> string * (string * string) list * string option
      val make_post_uri_components :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ?keep_get_na_params:bool ->
        '->
        '->
        string * (string * string) list * string option *
        (string * string) list
      val make_proto_prefix :
        sp:Eliom_sessions.server_params ->
        ?hostname:string -> ?port:int -> bool -> string
      val a :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.a_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        Xhtmltypes.a_content XHTML.M.elt list ->
        '-> [> Xhtmltypes.a ] XHTML.M.elt
      val css_link :
        ?a:Xhtmltypes.link_attrib XHTML.M.attrib list ->
        uri:XHTML.M.uri -> unit -> [> Xhtmltypes.link ] XHTML.M.elt
      val js_script :
        ?a:Xhtmltypes.script_attrib XHTML.M.attrib list ->
        uri:XHTML.M.uri -> unit -> [> Xhtmltypes.script ] XHTML.M.elt
      val get_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        [> Xhtmltypes.form ] XHTML.M.elt
      val lwt_get_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
        [> Xhtmltypes.form ] XHTML.M.elt Lwt.t
      val post_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?keep_get_na_params:bool ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        '-> [> Xhtmltypes.form ] XHTML.M.elt
      val lwt_post_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?keep_get_na_params:bool ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
        '-> [> Xhtmltypes.form ] XHTML.M.elt Lwt.t
      type basic_input_type = [ `Hidden | `Password | `Submit | `Text ]
      val int_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< int Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< int32 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< int64 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< float Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< string Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_input :
        ('-> string) ->
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< 'Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:'-> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< `Button
                    | `Hidden
                    | `Password
                    | `Reset
                    | `Submit
                    | `Text ] ->
        ?name:string ->
        ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val file_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< Ocsigen_lib.file_info Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< Eliom_parameters.coordinates Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int32 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int32 ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int64 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int64 ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (float * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:float ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (string * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:string ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_image_input :
        ('-> string) ->
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< ('a * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:'->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:string ->
        value:string ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val bool_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `One of bool ] Eliom_parameters.param_name ->
        unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int ] Eliom_parameters.param_name ->
        value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of float ] Eliom_parameters.param_name ->
        value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of string ] Eliom_parameters.param_name ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_checkbox :
        ('-> string) ->
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of 'a ] Eliom_parameters.param_name ->
        value:'-> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:string ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of string ] Eliom_parameters.param_name ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int ] Eliom_parameters.param_name ->
        value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of float ] Eliom_parameters.param_name ->
        value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_radio :
        ('-> string) ->
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of 'a ] Eliom_parameters.param_name ->
        value:'-> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:string ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      type button_type = [ `Button | `Reset | `Submit ]
      val string_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< string Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:string ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int32_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int32 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int32 ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int64_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int64 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int64 ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val float_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:float ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val user_type_button :
        ('-> string) ->
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< 'Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:'->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val raw_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        button_type:[< button_type ] ->
        name:string ->
        value:string ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        button_type:[< button_type ] ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val textarea :
        ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
        name:[< string Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        ?value:string ->
        rows:int -> cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
      val raw_textarea :
        ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
        name:string ->
        ?value:string ->
        rows:int -> cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
      type 'a soption =
          Xhtmltypes.option_attrib XHTML.M.attrib list * 'a *
          Xhtmltypes.pcdata XHTML.M.elt option * bool
      type 'a select_opt =
          Optgroup of
            [ `Class
            | `Disabled
            | `Id
            | `OnClick
            | `OnDblClick
            | `OnKeyDown
            | `OnKeyPress
            | `OnKeyUp
            | `OnMouseDown
            | `OnMouseMove
            | `OnMouseOut
            | `OnMouseOver
            | `OnMouseUp
            | `Style_Attr
            | `Title
            | `XML_lang ] XHTML.M.attrib list * string * 'a soption *
            'a soption list
        | Option of 'a soption
      val int_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int ] Eliom_parameters.param_name ->
        int select_opt ->
        int select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int32_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int32 ] Eliom_parameters.param_name ->
        int32 select_opt ->
        int32 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int64_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int64 ] Eliom_parameters.param_name ->
        int64 select_opt ->
        int64 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val float_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of float ] Eliom_parameters.param_name ->
        float select_opt ->
        float select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val string_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of string ] Eliom_parameters.param_name ->
        string select_opt ->
        string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val user_type_select :
        ('-> string) ->
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of 'a ] Eliom_parameters.param_name ->
        'a select_opt ->
        'a select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val raw_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:string ->
        string select_opt ->
        string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int ] Eliom_parameters.param_name ->
        int select_opt ->
        int select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int32_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int32 ] Eliom_parameters.param_name ->
        int32 select_opt ->
        int32 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int64_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int64 ] Eliom_parameters.param_name ->
        int64 select_opt ->
        int64 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val float_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of float ] Eliom_parameters.param_name ->
        float select_opt ->
        float select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val string_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of string ] Eliom_parameters.param_name ->
        string select_opt ->
        string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val user_type_multiple_select :
        ('-> string) ->
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of 'a ] Eliom_parameters.param_name ->
        'a select_opt ->
        'a select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val raw_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:string ->
        string select_opt ->
        string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
    end
  module Xhtmlcompactreg :
    sig
      type page = Xhtmltypes.xhtml XHTML.M.elt
      type options = XHTML.M.doctypes
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        sp:Eliom_sessions.server_params ->
        page -> Ocsigen_http_frame.result Lwt.t
      val register :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?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 ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_lib.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            sp:Eliom_sessions.server_params ->
            page -> Ocsigen_http_frame.result Lwt.t
          val register :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?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 ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_lib.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
    end
  module Blocks :
    sig
      type page = Xhtmltypes.body_content XHTML.M.elt list
      type options
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        sp:Eliom_sessions.server_params ->
        page -> Ocsigen_http_frame.result Lwt.t
      val register :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?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 ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_lib.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            sp:Eliom_sessions.server_params ->
            page -> Ocsigen_http_frame.result Lwt.t
          val register :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?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 ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_lib.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
      val make_string_uri :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set -> '-> string
      val make_uri :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set -> '-> XHTML.M.uri
      val make_uri_components :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        '-> string * (string * string) list * string option
      val make_post_uri_components :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ?keep_get_na_params:bool ->
        '->
        '->
        string * (string * string) list * string option *
        (string * string) list
      val make_proto_prefix :
        sp:Eliom_sessions.server_params ->
        ?hostname:string -> ?port:int -> bool -> string
      val a :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.a_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        Xhtmltypes.a_content XHTML.M.elt list ->
        '-> [> Xhtmltypes.a ] XHTML.M.elt
      val css_link :
        ?a:Xhtmltypes.link_attrib XHTML.M.attrib list ->
        uri:XHTML.M.uri -> unit -> [> Xhtmltypes.link ] XHTML.M.elt
      val js_script :
        ?a:Xhtmltypes.script_attrib XHTML.M.attrib list ->
        uri:XHTML.M.uri -> unit -> [> Xhtmltypes.script ] XHTML.M.elt
      val get_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        [> Xhtmltypes.form ] XHTML.M.elt
      val lwt_get_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
        [> Xhtmltypes.form ] XHTML.M.elt Lwt.t
      val post_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?keep_get_na_params:bool ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        '-> [> Xhtmltypes.form ] XHTML.M.elt
      val lwt_post_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?keep_get_na_params:bool ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
        '-> [> Xhtmltypes.form ] XHTML.M.elt Lwt.t
      type basic_input_type = [ `Hidden | `Password | `Submit | `Text ]
      val int_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< int Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< int32 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< int64 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< float Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< string Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_input :
        ('-> string) ->
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< basic_input_type ] ->
        ?name:[< 'Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:'-> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        input_type:[< `Button
                    | `Hidden
                    | `Password
                    | `Reset
                    | `Submit
                    | `Text ] ->
        ?name:string ->
        ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val file_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< Ocsigen_lib.file_info Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< Eliom_parameters.coordinates Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int32 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int32 ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (int64 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int64 ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (float * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:float ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< (string * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:string ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_image_input :
        ('-> string) ->
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:[< ('a * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:'->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_image_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        name:string ->
        value:string ->
        ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val bool_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `One of bool ] Eliom_parameters.param_name ->
        unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int ] Eliom_parameters.param_name ->
        value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of float ] Eliom_parameters.param_name ->
        value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of string ] Eliom_parameters.param_name ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_checkbox :
        ('-> string) ->
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Set of 'a ] Eliom_parameters.param_name ->
        value:'-> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:string ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of string ] Eliom_parameters.param_name ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int ] Eliom_parameters.param_name ->
        value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int32_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val int64_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of float ] Eliom_parameters.param_name ->
        value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_radio :
        ('-> string) ->
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:[ `Radio of 'a ] Eliom_parameters.param_name ->
        value:'-> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      val raw_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        name:string ->
        value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
      type button_type = [ `Button | `Reset | `Submit ]
      val string_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< string Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:string ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int32_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int32 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int32 ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val int64_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< int64 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int64 ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val float_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:float ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val user_type_button :
        ('-> string) ->
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        name:[< 'Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:'->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val raw_button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        button_type:[< button_type ] ->
        name:string ->
        value:string ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val button :
        ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
        button_type:[< button_type ] ->
        Xhtmltypes.button_content XHTML.M.elt list ->
        [> Xhtmltypes.button ] XHTML.M.elt
      val textarea :
        ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
        name:[< string Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        ?value:string ->
        rows:int -> cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
      val raw_textarea :
        ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
        name:string ->
        ?value:string ->
        rows:int -> cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
      type 'a soption =
          Xhtmltypes.option_attrib XHTML.M.attrib list * 'a *
          Xhtmltypes.pcdata XHTML.M.elt option * bool
      type 'a select_opt =
          Optgroup of
            [ `Class
            | `Disabled
            | `Id
            | `OnClick
            | `OnDblClick
            | `OnKeyDown
            | `OnKeyPress
            | `OnKeyUp
            | `OnMouseDown
            | `OnMouseMove
            | `OnMouseOut
            | `OnMouseOver
            | `OnMouseUp
            | `Style_Attr
            | `Title
            | `XML_lang ] XHTML.M.attrib list * string * 'a soption *
            'a soption list
        | Option of 'a soption
      val int_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int ] Eliom_parameters.param_name ->
        int select_opt ->
        int select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int32_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int32 ] Eliom_parameters.param_name ->
        int32 select_opt ->
        int32 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int64_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of int64 ] Eliom_parameters.param_name ->
        int64 select_opt ->
        int64 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val float_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of float ] Eliom_parameters.param_name ->
        float select_opt ->
        float select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val string_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of string ] Eliom_parameters.param_name ->
        string select_opt ->
        string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val user_type_select :
        ('-> string) ->
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `One of 'a ] Eliom_parameters.param_name ->
        'a select_opt ->
        'a select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val raw_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:string ->
        string select_opt ->
        string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int ] Eliom_parameters.param_name ->
        int select_opt ->
        int select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int32_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int32 ] Eliom_parameters.param_name ->
        int32 select_opt ->
        int32 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val int64_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of int64 ] Eliom_parameters.param_name ->
        int64 select_opt ->
        int64 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val float_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of float ] Eliom_parameters.param_name ->
        float select_opt ->
        float select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val string_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of string ] Eliom_parameters.param_name ->
        string select_opt ->
        string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val user_type_multiple_select :
        ('-> string) ->
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:[< `Set of 'a ] Eliom_parameters.param_name ->
        'a select_opt ->
        'a select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      val raw_multiple_select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        name:string ->
        string select_opt ->
        string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
    end
  module SubXhtml :
    functor (T : sig type content end->
      sig
        type page = T.content XHTML.M.elt list
        type options
        val send :
          ?options:options ->
          ?cookies:Eliom_services.cookie list ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          sp:Eliom_sessions.server_params ->
          page -> Ocsigen_http_frame.result Lwt.t
        val register :
          ?options:options ->
          ?cookies:Eliom_services.cookie list ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?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 ->
          ?cookies:Eliom_services.cookie list ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?session_name:string ->
          ?secure:bool ->
          sp:Eliom_sessions.server_params ->
          service:('a, 'b, [< Eliom_services.internal_service_kind ],
                   [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                  Eliom_services.service ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
        val register_new_service :
          ?options:options ->
          ?cookies:Eliom_services.cookie list ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?sp:Eliom_sessions.server_params ->
          ?https:bool ->
          path:Ocsigen_lib.url_path ->
          get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                     Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit,
           [> `Attached of
                [> `Internal of [> `Service ] * [> `Get ] ]
                Eliom_services.a_s ],
           'b, 'c, unit, [> `Registrable ])
          Eliom_services.service
        val register_new_coservice :
          ?options:options ->
          ?cookies:Eliom_services.cookie list ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?sp:Eliom_sessions.server_params ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_session_name:string ->
          ?csrf_secure_session:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:(unit, unit,
                    [ `Attached of
                        [ `Internal of [ `Service ] * [ `Get ] ]
                        Eliom_services.a_s ],
                    [ `WithoutSuffix ], unit, unit,
                    [< Eliom_services.registrable ])
                   Eliom_services.service ->
          get_params:('a, [ `WithoutSuffix ], 'b)
                     Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit,
           [> `Attached of
                [> `Internal of [> `Coservice ] * [> `Get ] ]
                Eliom_services.a_s ],
           [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
          Eliom_services.service
        val register_new_coservice' :
          ?options:options ->
          ?cookies:Eliom_services.cookie list ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?sp:Eliom_sessions.server_params ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_session_name:string ->
          ?csrf_secure_session:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          get_params:('a, [ `WithoutSuffix ], 'b)
                     Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
           [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
          Eliom_services.service
        val register_new_coservice_for_session :
          ?options:options ->
          ?cookies:Eliom_services.cookie list ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?session_name:string ->
          ?secure:bool ->
          sp:Eliom_sessions.server_params ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:(unit, unit,
                    [ `Attached of
                        [ `Internal of [ `Service ] * [ `Get ] ]
                        Eliom_services.a_s ],
                    [ `WithoutSuffix ], unit, unit,
                    [< Eliom_services.registrable ])
                   Eliom_services.service ->
          get_params:('a, [ `WithoutSuffix ], 'b)
                     Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit,
           [> `Attached of
                [> `Internal of [> `Coservice ] * [> `Get ] ]
                Eliom_services.a_s ],
           [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
          Eliom_services.service
        val register_new_coservice_for_session' :
          ?options:options ->
          ?cookies:Eliom_services.cookie list ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?session_name:string ->
          ?secure:bool ->
          sp:Eliom_sessions.server_params ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          get_params:('a, [ `WithoutSuffix ], 'b)
                     Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
           [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
          Eliom_services.service
        val register_new_post_service :
          ?options:options ->
          ?cookies:Eliom_services.cookie list ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?sp:Eliom_sessions.server_params ->
          ?https:bool ->
          fallback:('a, unit,
                    [ `Attached of
                        [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                        Eliom_services.a_s ],
                    [< Eliom_services.suff ] as 'b, 'c, unit,
                    [< `Registrable ])
                   Eliom_services.service ->
          post_params:('d, [ `WithoutSuffix ], 'e)
                      Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
          ('a, 'd,
           [> `Attached of
                [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                Eliom_services.a_s ],
           'b, 'c, 'e, [> `Registrable ])
          Eliom_services.service
        val register_new_post_coservice :
          ?options:options ->
          ?cookies:Eliom_services.cookie list ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?sp:Eliom_sessions.server_params ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_session_name:string ->
          ?csrf_secure_session:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:('a, unit,
                    [ `Attached of
                        [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                        Eliom_services.a_s ],
                    [< Eliom_services.suff ] as 'b, 'c, unit,
                    [< `Registrable ])
                   Eliom_services.service ->
          post_params:('d, [ `WithoutSuffix ], 'e)
                      Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
          ('a, 'd,
           [> `Attached of
                [> `Internal of [> `Coservice ] * [> `Post ] ]
                Eliom_services.a_s ],
           'b, 'c, 'e, [> `Registrable ])
          Eliom_services.service
        val register_new_post_coservice' :
          ?options:options ->
          ?cookies:Eliom_services.cookie list ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?sp:Eliom_sessions.server_params ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_session_name:string ->
          ?csrf_secure_session:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?keep_get_na_params:bool ->
          ?https:bool ->
          post_params:('a, [ `WithoutSuffix ], 'b)
                      Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
          (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
           [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
          Eliom_services.service
        val register_new_post_coservice_for_session :
          ?options:options ->
          ?cookies:Eliom_services.cookie list ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?session_name:string ->
          ?secure:bool ->
          sp:Eliom_sessions.server_params ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:('a, unit,
                    [ `Attached of
                        [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                        Eliom_services.a_s ],
                    [< Eliom_services.suff ] as 'b, 'c, unit,
                    [ `Registrable ])
                   Eliom_services.service ->
          post_params:('d, [ `WithoutSuffix ], 'e)
                      Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
          ('a, 'd,
           [> `Attached of
                [> `Internal of [> `Coservice ] * [> `Post ] ]
                Eliom_services.a_s ],
           'b, 'c, 'e, [> `Registrable ])
          Eliom_services.service
        val register_new_post_coservice_for_session' :
          ?options:options ->
          ?cookies:Eliom_services.cookie list ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?session_name:string ->
          ?secure:bool ->
          sp:Eliom_sessions.server_params ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?keep_get_na_params:bool ->
          ?https:bool ->
          post_params:('a, [ `WithoutSuffix ], 'b)
                      Eliom_parameters.params_type ->
          ?error_handler:(Eliom_sessions.server_params ->
                          (string * exn) list -> page Lwt.t) ->
          (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
          (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
           [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
          Eliom_services.service
        module Cookies :
          sig
            type page = page * Eliom_services.cookie list
            type options
            val send :
              ?options:options ->
              ?cookies:Eliom_services.cookie list ->
              ?charset:string ->
              ?code:int ->
              ?content_type:string ->
              ?headers:Http_headers.t ->
              sp:Eliom_sessions.server_params ->
              page -> Ocsigen_http_frame.result Lwt.t
            val register :
              ?options:options ->
              ?cookies:Eliom_services.cookie list ->
              ?charset:string ->
              ?code:int ->
              ?content_type:string ->
              ?headers:Http_headers.t ->
              ?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 ->
              ?cookies:Eliom_services.cookie list ->
              ?charset:string ->
              ?code:int ->
              ?content_type:string ->
              ?headers:Http_headers.t ->
              ?session_name:string ->
              ?secure:bool ->
              sp:Eliom_sessions.server_params ->
              service:('a, 'b, [< Eliom_services.internal_service_kind ],
                       [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                      Eliom_services.service ->
              ?error_handler:(Eliom_sessions.server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
              unit
            val register_new_service :
              ?options:options ->
              ?cookies:Eliom_services.cookie list ->
              ?charset:string ->
              ?code:int ->
              ?content_type:string ->
              ?headers:Http_headers.t ->
              ?sp:Eliom_sessions.server_params ->
              ?https:bool ->
              path:Ocsigen_lib.url_path ->
              get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                         Eliom_parameters.params_type ->
              ?error_handler:(Eliom_sessions.server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
              ('a, unit,
               [> `Attached of
                    [> `Internal of [> `Service ] * [> `Get ] ]
                    Eliom_services.a_s ],
               'b, 'c, unit, [> `Registrable ])
              Eliom_services.service
            val register_new_coservice :
              ?options:options ->
              ?cookies:Eliom_services.cookie list ->
              ?charset:string ->
              ?code:int ->
              ?content_type:string ->
              ?headers:Http_headers.t ->
              ?sp:Eliom_sessions.server_params ->
              ?name:string ->
              ?csrf_safe:bool ->
              ?csrf_session_name:string ->
              ?csrf_secure_session:bool ->
              ?max_use:int ->
              ?timeout:float ->
              ?https:bool ->
              fallback:(unit, unit,
                        [ `Attached of
                            [ `Internal of [ `Service ] * [ `Get ] ]
                            Eliom_services.a_s ],
                        [ `WithoutSuffix ], unit, unit,
                        [< Eliom_services.registrable ])
                       Eliom_services.service ->
              get_params:('a, [ `WithoutSuffix ], 'b)
                         Eliom_parameters.params_type ->
              ?error_handler:(Eliom_sessions.server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
              ('a, unit,
               [> `Attached of
                    [> `Internal of [> `Coservice ] * [> `Get ] ]
                    Eliom_services.a_s ],
               [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
              Eliom_services.service
            val register_new_coservice' :
              ?options:options ->
              ?cookies:Eliom_services.cookie list ->
              ?charset:string ->
              ?code:int ->
              ?content_type:string ->
              ?headers:Http_headers.t ->
              ?sp:Eliom_sessions.server_params ->
              ?name:string ->
              ?csrf_safe:bool ->
              ?csrf_session_name:string ->
              ?csrf_secure_session:bool ->
              ?max_use:int ->
              ?timeout:float ->
              ?https:bool ->
              get_params:('a, [ `WithoutSuffix ], 'b)
                         Eliom_parameters.params_type ->
              ?error_handler:(Eliom_sessions.server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
              ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
               [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
              Eliom_services.service
            val register_new_coservice_for_session :
              ?options:options ->
              ?cookies:Eliom_services.cookie list ->
              ?charset:string ->
              ?code:int ->
              ?content_type:string ->
              ?headers:Http_headers.t ->
              ?session_name:string ->
              ?secure:bool ->
              sp:Eliom_sessions.server_params ->
              ?name:string ->
              ?csrf_safe:bool ->
              ?max_use:int ->
              ?timeout:float ->
              ?https:bool ->
              fallback:(unit, unit,
                        [ `Attached of
                            [ `Internal of [ `Service ] * [ `Get ] ]
                            Eliom_services.a_s ],
                        [ `WithoutSuffix ], unit, unit,
                        [< Eliom_services.registrable ])
                       Eliom_services.service ->
              get_params:('a, [ `WithoutSuffix ], 'b)
                         Eliom_parameters.params_type ->
              ?error_handler:(Eliom_sessions.server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
              ('a, unit,
               [> `Attached of
                    [> `Internal of [> `Coservice ] * [> `Get ] ]
                    Eliom_services.a_s ],
               [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
              Eliom_services.service
            val register_new_coservice_for_session' :
              ?options:options ->
              ?cookies:Eliom_services.cookie list ->
              ?charset:string ->
              ?code:int ->
              ?content_type:string ->
              ?headers:Http_headers.t ->
              ?session_name:string ->
              ?secure:bool ->
              sp:Eliom_sessions.server_params ->
              ?name:string ->
              ?csrf_safe:bool ->
              ?max_use:int ->
              ?timeout:float ->
              ?https:bool ->
              get_params:('a, [ `WithoutSuffix ], 'b)
                         Eliom_parameters.params_type ->
              ?error_handler:(Eliom_sessions.server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
              ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
               [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
              Eliom_services.service
            val register_new_post_service :
              ?options:options ->
              ?cookies:Eliom_services.cookie list ->
              ?charset:string ->
              ?code:int ->
              ?content_type:string ->
              ?headers:Http_headers.t ->
              ?sp:Eliom_sessions.server_params ->
              ?https:bool ->
              fallback:('a, unit,
                        [ `Attached of
                            [ `Internal of
                                [ `Coservice | `Service ] * [ `Get ] ]
                            Eliom_services.a_s ],
                        [< Eliom_services.suff ] as 'b, 'c, unit,
                        [< `Registrable ])
                       Eliom_services.service ->
              post_params:('d, [ `WithoutSuffix ], 'e)
                          Eliom_parameters.params_type ->
              ?error_handler:(Eliom_sessions.server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
              ('a, 'd,
               [> `Attached of
                    [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                    Eliom_services.a_s ],
               'b, 'c, 'e, [> `Registrable ])
              Eliom_services.service
            val register_new_post_coservice :
              ?options:options ->
              ?cookies:Eliom_services.cookie list ->
              ?charset:string ->
              ?code:int ->
              ?content_type:string ->
              ?headers:Http_headers.t ->
              ?sp:Eliom_sessions.server_params ->
              ?name:string ->
              ?csrf_safe:bool ->
              ?csrf_session_name:string ->
              ?csrf_secure_session:bool ->
              ?max_use:int ->
              ?timeout:float ->
              ?https:bool ->
              fallback:('a, unit,
                        [ `Attached of
                            [ `Internal of
                                [< `Coservice | `Service ] * [ `Get ] ]
                            Eliom_services.a_s ],
                        [< Eliom_services.suff ] as 'b, 'c, unit,
                        [< `Registrable ])
                       Eliom_services.service ->
              post_params:('d, [ `WithoutSuffix ], 'e)
                          Eliom_parameters.params_type ->
              ?error_handler:(Eliom_sessions.server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
              ('a, 'd,
               [> `Attached of
                    [> `Internal of [> `Coservice ] * [> `Post ] ]
                    Eliom_services.a_s ],
               'b, 'c, 'e, [> `Registrable ])
              Eliom_services.service
            val register_new_post_coservice' :
              ?options:options ->
              ?cookies:Eliom_services.cookie list ->
              ?charset:string ->
              ?code:int ->
              ?content_type:string ->
              ?headers:Http_headers.t ->
              ?sp:Eliom_sessions.server_params ->
              ?name:string ->
              ?csrf_safe:bool ->
              ?csrf_session_name:string ->
              ?csrf_secure_session:bool ->
              ?max_use:int ->
              ?timeout:float ->
              ?keep_get_na_params:bool ->
              ?https:bool ->
              post_params:('a, [ `WithoutSuffix ], 'b)
                          Eliom_parameters.params_type ->
              ?error_handler:(Eliom_sessions.server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
              (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
               [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
              Eliom_services.service
            val register_new_post_coservice_for_session :
              ?options:options ->
              ?cookies:Eliom_services.cookie list ->
              ?charset:string ->
              ?code:int ->
              ?content_type:string ->
              ?headers:Http_headers.t ->
              ?session_name:string ->
              ?secure:bool ->
              sp:Eliom_sessions.server_params ->
              ?name:string ->
              ?csrf_safe:bool ->
              ?max_use:int ->
              ?timeout:float ->
              ?https:bool ->
              fallback:('a, unit,
                        [ `Attached of
                            [ `Internal of
                                [< `Coservice | `Service ] * [ `Get ] ]
                            Eliom_services.a_s ],
                        [< Eliom_services.suff ] as 'b, 'c, unit,
                        [ `Registrable ])
                       Eliom_services.service ->
              post_params:('d, [ `WithoutSuffix ], 'e)
                          Eliom_parameters.params_type ->
              ?error_handler:(Eliom_sessions.server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
              ('a, 'd,
               [> `Attached of
                    [> `Internal of [> `Coservice ] * [> `Post ] ]
                    Eliom_services.a_s ],
               'b, 'c, 'e, [> `Registrable ])
              Eliom_services.service
            val register_new_post_coservice_for_session' :
              ?options:options ->
              ?cookies:Eliom_services.cookie list ->
              ?charset:string ->
              ?code:int ->
              ?content_type:string ->
              ?headers:Http_headers.t ->
              ?session_name:string ->
              ?secure:bool ->
              sp:Eliom_sessions.server_params ->
              ?name:string ->
              ?csrf_safe:bool ->
              ?max_use:int ->
              ?timeout:float ->
              ?keep_get_na_params:bool ->
              ?https:bool ->
              post_params:('a, [ `WithoutSuffix ], 'b)
                          Eliom_parameters.params_type ->
              ?error_handler:(Eliom_sessions.server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
              (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
               [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
              Eliom_services.service
          end
        val make_string_uri :
          ?absolute:bool ->
          ?absolute_path:bool ->
          ?https:bool ->
          service:('a, unit, [< Eliom_services.get_service_kind ],
                   [< Eliom_services.suff ], 'b, unit,
                   [< Eliom_services.registrable ])
                  Eliom_services.service ->
          sp:Eliom_sessions.server_params ->
          ?hostname:string ->
          ?port:int ->
          ?fragment:string ->
          ?keep_nl_params:[ `All | `None | `Persistent ] ->
          ?nl_params:Eliom_parameters.nl_params_set -> '-> string
        val make_uri :
          ?absolute:bool ->
          ?absolute_path:bool ->
          ?https:bool ->
          service:('a, unit, [< Eliom_services.get_service_kind ],
                   [< Eliom_services.suff ], 'b, unit,
                   [< Eliom_services.registrable ])
                  Eliom_services.service ->
          sp:Eliom_sessions.server_params ->
          ?hostname:string ->
          ?port:int ->
          ?fragment:string ->
          ?keep_nl_params:[ `All | `None | `Persistent ] ->
          ?nl_params:Eliom_parameters.nl_params_set -> '-> XHTML.M.uri
        val make_uri_components :
          ?absolute:bool ->
          ?absolute_path:bool ->
          ?https:bool ->
          service:('a, unit, [< Eliom_services.get_service_kind ],
                   [< Eliom_services.suff ], 'b, unit,
                   [< Eliom_services.registrable ])
                  Eliom_services.service ->
          sp:Eliom_sessions.server_params ->
          ?hostname:string ->
          ?port:int ->
          ?fragment:string ->
          ?keep_nl_params:[ `All | `None | `Persistent ] ->
          ?nl_params:Eliom_parameters.nl_params_set ->
          '-> string * (string * string) list * string option
        val make_post_uri_components :
          ?absolute:bool ->
          ?absolute_path:bool ->
          ?https:bool ->
          service:('a, 'b, [< Eliom_services.post_service_kind ],
                   [< Eliom_services.suff ], 'c, 'd,
                   [< Eliom_services.registrable ])
                  Eliom_services.service ->
          sp:Eliom_sessions.server_params ->
          ?hostname:string ->
          ?port:int ->
          ?fragment:string ->
          ?keep_nl_params:[ `All | `None | `Persistent ] ->
          ?nl_params:Eliom_parameters.nl_params_set ->
          ?keep_get_na_params:bool ->
          '->
          '->
          string * (string * string) list * string option *
          (string * string) list
        val make_proto_prefix :
          sp:Eliom_sessions.server_params ->
          ?hostname:string -> ?port:int -> bool -> string
        val a :
          ?absolute:bool ->
          ?absolute_path:bool ->
          ?https:bool ->
          ?a:Xhtmltypes.a_attrib XHTML.M.attrib list ->
          service:('a, unit, [< Eliom_services.get_service_kind ],
                   [< Eliom_services.suff ], 'b, 'c,
                   [< Eliom_services.registrable ])
                  Eliom_services.service ->
          sp:Eliom_sessions.server_params ->
          ?hostname:string ->
          ?port:int ->
          ?fragment:string ->
          ?keep_nl_params:[ `All | `None | `Persistent ] ->
          ?nl_params:Eliom_parameters.nl_params_set ->
          Xhtmltypes.a_content XHTML.M.elt list ->
          '-> [> Xhtmltypes.a ] XHTML.M.elt
        val css_link :
          ?a:Xhtmltypes.link_attrib XHTML.M.attrib list ->
          uri:XHTML.M.uri -> unit -> [> Xhtmltypes.link ] XHTML.M.elt
        val js_script :
          ?a:Xhtmltypes.script_attrib XHTML.M.attrib list ->
          uri:XHTML.M.uri -> unit -> [> Xhtmltypes.script ] XHTML.M.elt
        val get_form :
          ?absolute:bool ->
          ?absolute_path:bool ->
          ?https:bool ->
          ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
          service:('a, unit, [< Eliom_services.get_service_kind ],
                   [< Eliom_services.suff ], 'b, 'c,
                   [< Eliom_services.registrable ])
                  Eliom_services.service ->
          sp:Eliom_sessions.server_params ->
          ?hostname:string ->
          ?port:int ->
          ?fragment:string ->
          ?keep_nl_params:[ `All | `None | `Persistent ] ->
          ?nl_params:Eliom_parameters.nl_params_set ->
          ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
          [> Xhtmltypes.form ] XHTML.M.elt
        val lwt_get_form :
          ?absolute:bool ->
          ?absolute_path:bool ->
          ?https:bool ->
          ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
          service:('a, unit, [< Eliom_services.get_service_kind ],
                   [< Eliom_services.suff ], 'b, 'c,
                   [< Eliom_services.registrable ])
                  Eliom_services.service ->
          sp:Eliom_sessions.server_params ->
          ?hostname:string ->
          ?port:int ->
          ?fragment:string ->
          ?keep_nl_params:[ `All | `None | `Persistent ] ->
          ?nl_params:Eliom_parameters.nl_params_set ->
          ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
          [> Xhtmltypes.form ] XHTML.M.elt Lwt.t
        val post_form :
          ?absolute:bool ->
          ?absolute_path:bool ->
          ?https:bool ->
          ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
          service:('a, 'b, [< Eliom_services.post_service_kind ],
                   [< Eliom_services.suff ], 'c, 'd,
                   [< Eliom_services.registrable ])
                  Eliom_services.service ->
          sp:Eliom_sessions.server_params ->
          ?hostname:string ->
          ?port:int ->
          ?fragment:string ->
          ?keep_nl_params:[ `All | `None | `Persistent ] ->
          ?keep_get_na_params:bool ->
          ?nl_params:Eliom_parameters.nl_params_set ->
          ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
          '-> [> Xhtmltypes.form ] XHTML.M.elt
        val lwt_post_form :
          ?absolute:bool ->
          ?absolute_path:bool ->
          ?https:bool ->
          ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
          service:('a, 'b, [< Eliom_services.post_service_kind ],
                   [< Eliom_services.suff ], 'c, 'd,
                   [< Eliom_services.registrable ])
                  Eliom_services.service ->
          sp:Eliom_sessions.server_params ->
          ?hostname:string ->
          ?port:int ->
          ?fragment:string ->
          ?keep_nl_params:[ `All | `None | `Persistent ] ->
          ?keep_get_na_params:bool ->
          ?nl_params:Eliom_parameters.nl_params_set ->
          ('-> Xhtmltypes.form_content XHTML.M.elt list Lwt.t) ->
          '-> [> Xhtmltypes.form ] XHTML.M.elt Lwt.t
        type basic_input_type = [ `Hidden | `Password | `Submit | `Text ]
        val int_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          input_type:[< basic_input_type ] ->
          ?name:[< int Eliom_parameters.setoneradio ]
                Eliom_parameters.param_name ->
          ?value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val int32_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          input_type:[< basic_input_type ] ->
          ?name:[< int32 Eliom_parameters.setoneradio ]
                Eliom_parameters.param_name ->
          ?value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val int64_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          input_type:[< basic_input_type ] ->
          ?name:[< int64 Eliom_parameters.setoneradio ]
                Eliom_parameters.param_name ->
          ?value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val float_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          input_type:[< basic_input_type ] ->
          ?name:[< float Eliom_parameters.setoneradio ]
                Eliom_parameters.param_name ->
          ?value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val string_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          input_type:[< basic_input_type ] ->
          ?name:[< string Eliom_parameters.setoneradio ]
                Eliom_parameters.param_name ->
          ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val user_type_input :
          ('-> string) ->
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          input_type:[< basic_input_type ] ->
          ?name:[< 'Eliom_parameters.setoneradio ]
                Eliom_parameters.param_name ->
          ?value:'-> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val raw_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          input_type:[< `Button
                      | `Hidden
                      | `Password
                      | `Reset
                      | `Submit
                      | `Text ] ->
          ?name:string ->
          ?value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val file_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          name:[< Ocsigen_lib.file_info Eliom_parameters.setoneradio ]
               Eliom_parameters.param_name ->
          unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val image_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          name:[< Eliom_parameters.coordinates Eliom_parameters.oneradio ]
               Eliom_parameters.param_name ->
          ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val int_image_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          name:[< (int * Eliom_parameters.coordinates)
                  Eliom_parameters.oneradio ]
               Eliom_parameters.param_name ->
          value:int ->
          ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val int32_image_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          name:[< (int32 * Eliom_parameters.coordinates)
                  Eliom_parameters.oneradio ]
               Eliom_parameters.param_name ->
          value:int32 ->
          ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val int64_image_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          name:[< (int64 * Eliom_parameters.coordinates)
                  Eliom_parameters.oneradio ]
               Eliom_parameters.param_name ->
          value:int64 ->
          ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val float_image_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          name:[< (float * Eliom_parameters.coordinates)
                  Eliom_parameters.oneradio ]
               Eliom_parameters.param_name ->
          value:float ->
          ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val string_image_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          name:[< (string * Eliom_parameters.coordinates)
                  Eliom_parameters.oneradio ]
               Eliom_parameters.param_name ->
          value:string ->
          ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val user_type_image_input :
          ('-> string) ->
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          name:[< ('a * Eliom_parameters.coordinates)
                  Eliom_parameters.oneradio ]
               Eliom_parameters.param_name ->
          value:'->
          ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val raw_image_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          name:string ->
          value:string ->
          ?src:XHTML.M.uri -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val bool_checkbox :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          name:[ `One of bool ] Eliom_parameters.param_name ->
          unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val int_checkbox :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          name:[ `Set of int ] Eliom_parameters.param_name ->
          value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val int32_checkbox :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          name:[ `Set of int32 ] Eliom_parameters.param_name ->
          value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val int64_checkbox :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          name:[ `Set of int64 ] Eliom_parameters.param_name ->
          value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val float_checkbox :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          name:[ `Set of float ] Eliom_parameters.param_name ->
          value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val string_checkbox :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          name:[ `Set of string ] Eliom_parameters.param_name ->
          value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val user_type_checkbox :
          ('-> string) ->
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          name:[ `Set of 'a ] Eliom_parameters.param_name ->
          value:'-> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val raw_checkbox :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          name:string ->
          value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val string_radio :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          name:[ `Radio of string ] Eliom_parameters.param_name ->
          value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val int_radio :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          name:[ `Radio of int ] Eliom_parameters.param_name ->
          value:int -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val int32_radio :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          name:[ `Radio of int32 ] Eliom_parameters.param_name ->
          value:int32 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val int64_radio :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          name:[ `Radio of int64 ] Eliom_parameters.param_name ->
          value:int64 -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val float_radio :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          name:[ `Radio of float ] Eliom_parameters.param_name ->
          value:float -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val user_type_radio :
          ('-> string) ->
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          name:[ `Radio of 'a ] Eliom_parameters.param_name ->
          value:'-> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        val raw_radio :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          name:string ->
          value:string -> unit -> [> Xhtmltypes.input ] XHTML.M.elt
        type button_type = [ `Button | `Reset | `Submit ]
        val string_button :
          ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
          name:[< string Eliom_parameters.setone ]
               Eliom_parameters.param_name ->
          value:string ->
          Xhtmltypes.button_content XHTML.M.elt list ->
          [> Xhtmltypes.button ] XHTML.M.elt
        val int_button :
          ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
          name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
          value:int ->
          Xhtmltypes.button_content XHTML.M.elt list ->
          [> Xhtmltypes.button ] XHTML.M.elt
        val int32_button :
          ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
          name:[< int32 Eliom_parameters.setone ] Eliom_parameters.param_name ->
          value:int32 ->
          Xhtmltypes.button_content XHTML.M.elt list ->
          [> Xhtmltypes.button ] XHTML.M.elt
        val int64_button :
          ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
          name:[< int64 Eliom_parameters.setone ] Eliom_parameters.param_name ->
          value:int64 ->
          Xhtmltypes.button_content XHTML.M.elt list ->
          [> Xhtmltypes.button ] XHTML.M.elt
        val float_button :
          ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
          name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
          value:float ->
          Xhtmltypes.button_content XHTML.M.elt list ->
          [> Xhtmltypes.button ] XHTML.M.elt
        val user_type_button :
          ('-> string) ->
          ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
          name:[< 'Eliom_parameters.setone ] Eliom_parameters.param_name ->
          value:'->
          Xhtmltypes.button_content XHTML.M.elt list ->
          [> Xhtmltypes.button ] XHTML.M.elt
        val raw_button :
          ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
          button_type:[< button_type ] ->
          name:string ->
          value:string ->
          Xhtmltypes.button_content XHTML.M.elt list ->
          [> Xhtmltypes.button ] XHTML.M.elt
        val button :
          ?a:Xhtmltypes.button_attrib XHTML.M.attrib list ->
          button_type:[< button_type ] ->
          Xhtmltypes.button_content XHTML.M.elt list ->
          [> Xhtmltypes.button ] XHTML.M.elt
        val textarea :
          ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
          name:[< string Eliom_parameters.setoneradio ]
               Eliom_parameters.param_name ->
          ?value:string ->
          rows:int ->
          cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
        val raw_textarea :
          ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
          name:string ->
          ?value:string ->
          rows:int ->
          cols:int -> unit -> [> Xhtmltypes.textarea ] XHTML.M.elt
        type 'a soption =
            Xhtmltypes.option_attrib XHTML.M.attrib list * 'a *
            Xhtmltypes.pcdata XHTML.M.elt option * bool
        type 'a select_opt =
            Optgroup of
              [ `Class
              | `Disabled
              | `Id
              | `OnClick
              | `OnDblClick
              | `OnKeyDown
              | `OnKeyPress
              | `OnKeyUp
              | `OnMouseDown
              | `OnMouseMove
              | `OnMouseOut
              | `OnMouseOver
              | `OnMouseUp
              | `Style_Attr
              | `Title
              | `XML_lang ] XHTML.M.attrib list * string * 'a soption *
              'a soption list
          | Option of 'a soption
        val int_select :
          ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
          name:[< `One of int ] Eliom_parameters.param_name ->
          int select_opt ->
          int select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
        val int32_select :
          ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
          name:[< `One of int32 ] Eliom_parameters.param_name ->
          int32 select_opt ->
          int32 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
        val int64_select :
          ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
          name:[< `One of int64 ] Eliom_parameters.param_name ->
          int64 select_opt ->
          int64 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
        val float_select :
          ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
          name:[< `One of float ] Eliom_parameters.param_name ->
          float select_opt ->
          float select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
        val string_select :
          ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
          name:[< `One of string ] Eliom_parameters.param_name ->
          string select_opt ->
          string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
        val user_type_select :
          ('-> string) ->
          ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
          name:[< `One of 'a ] Eliom_parameters.param_name ->
          'a select_opt ->
          'a select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
        val raw_select :
          ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
          name:string ->
          string select_opt ->
          string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
        val int_multiple_select :
          ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
          name:[< `Set of int ] Eliom_parameters.param_name ->
          int select_opt ->
          int select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
        val int32_multiple_select :
          ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
          name:[< `Set of int32 ] Eliom_parameters.param_name ->
          int32 select_opt ->
          int32 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
        val int64_multiple_select :
          ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
          name:[< `Set of int64 ] Eliom_parameters.param_name ->
          int64 select_opt ->
          int64 select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
        val float_multiple_select :
          ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
          name:[< `Set of float ] Eliom_parameters.param_name ->
          float select_opt ->
          float select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
        val string_multiple_select :
          ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
          name:[< `Set of string ] Eliom_parameters.param_name ->
          string select_opt ->
          string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
        val user_type_multiple_select :
          ('-> string) ->
          ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
          name:[< `Set of 'a ] Eliom_parameters.param_name ->
          'a select_opt ->
          'a select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
        val raw_multiple_select :
          ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
          name:string ->
          string select_opt ->
          string select_opt list -> [> Xhtmltypes.select ] XHTML.M.elt
      end
  module HtmlText :
    sig
      type page = string
      type options
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        sp:Eliom_sessions.server_params ->
        page -> Ocsigen_http_frame.result Lwt.t
      val register :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?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 ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_lib.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            sp:Eliom_sessions.server_params ->
            page -> Ocsigen_http_frame.result Lwt.t
          val register :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?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 ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_lib.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
      type form_content_elt = string
      type form_content_elt_list = string
      type form_elt = string
      type a_content_elt = string
      type a_content_elt_list = string
      type a_elt = string
      type a_elt_list = string
      type div_content_elt = string
      type div_content_elt_list = string
      type uri = string
      type link_elt = string
      type script_elt = string
      type textarea_elt = string
      type input_elt = string
      type pcdata_elt = string
      type select_elt = string
      type select_content_elt
      type select_content_elt_list
      type option_elt
      type option_elt_list
      type button_elt
      type button_content_elt
      type button_content_elt_list
      type a_attrib_t = string
      type form_attrib_t = string
      type input_attrib_t = string
      type textarea_attrib_t = string
      type select_attrib_t = string
      type link_attrib_t = string
      type script_attrib_t = string
      type optgroup_attrib_t
      type option_attrib_t
      type button_attrib_t
      type input_type_t = string
      type button_type_t
      val make_string_uri :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set -> '-> string
      val make_uri :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set -> '-> uri
      val make_uri_components :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, unit,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        '-> string * (string * string) list * string option
      val make_post_uri_components :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ?keep_get_na_params:bool ->
        '->
        '->
        string * (string * string) list * string option *
        (string * string) list
      val make_proto_prefix :
        sp:Eliom_sessions.server_params ->
        ?hostname:string -> ?port:int -> bool -> string
      val a :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:a_attrib_t ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        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 :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:form_attrib_t ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> form_content_elt_list) -> form_elt
      val lwt_get_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:form_attrib_t ->
        service:('a, unit, [< Eliom_services.get_service_kind ],
                 [< Eliom_services.suff ], 'b, 'c,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> form_content_elt_list Lwt.t) -> form_elt Lwt.t
      val post_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:form_attrib_t ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?keep_get_na_params:bool ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> form_content_elt_list) -> '-> form_elt
      val lwt_post_form :
        ?absolute:bool ->
        ?absolute_path:bool ->
        ?https:bool ->
        ?a:form_attrib_t ->
        service:('a, 'b, [< Eliom_services.post_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd,
                 [< Eliom_services.registrable ])
                Eliom_services.service ->
        sp:Eliom_sessions.server_params ->
        ?hostname:string ->
        ?port:int ->
        ?fragment:string ->
        ?keep_nl_params:[ `All | `None | `Persistent ] ->
        ?keep_get_na_params:bool ->
        ?nl_params:Eliom_parameters.nl_params_set ->
        ('-> form_content_elt_list Lwt.t) -> '-> form_elt Lwt.t
      val int_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< int Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int -> unit -> input_elt
      val int32_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< int32 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int32 -> unit -> input_elt
      val int64_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< int64 Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:int64 -> unit -> input_elt
      val float_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< float Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:float -> unit -> input_elt
      val string_input :
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< string Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:string -> unit -> input_elt
      val user_type_input :
        ('-> string) ->
        ?a:input_attrib_t ->
        input_type:input_type_t ->
        ?name:[< 'Eliom_parameters.setoneradio ]
              Eliom_parameters.param_name ->
        ?value:'-> unit -> 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_lib.file_info Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        unit -> input_elt
      val image_input :
        ?a:input_attrib_t ->
        name:[< Eliom_parameters.coordinates Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        ?src:uri -> unit -> input_elt
      val int_image_input :
        ?a:input_attrib_t ->
        name:[< (int * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int -> ?src:uri -> unit -> input_elt
      val int32_image_input :
        ?a:input_attrib_t ->
        name:[< (int32 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int32 -> ?src:uri -> unit -> input_elt
      val int64_image_input :
        ?a:input_attrib_t ->
        name:[< (int64 * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:int64 -> ?src:uri -> unit -> input_elt
      val float_image_input :
        ?a:input_attrib_t ->
        name:[< (float * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:float -> ?src:uri -> unit -> input_elt
      val string_image_input :
        ?a:input_attrib_t ->
        name:[< (string * Eliom_parameters.coordinates)
                Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:string -> ?src:uri -> unit -> input_elt
      val user_type_image_input :
        ('-> string) ->
        ?a:input_attrib_t ->
        name:[< ('a * Eliom_parameters.coordinates) Eliom_parameters.oneradio ]
             Eliom_parameters.param_name ->
        value:'-> ?src:uri -> unit -> input_elt
      val raw_image_input :
        ?a:input_attrib_t ->
        name:string -> value:string -> ?src:uri -> unit -> input_elt
      val bool_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `One of bool ] Eliom_parameters.param_name ->
        unit -> input_elt
      val int_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of int ] Eliom_parameters.param_name ->
        value:int -> unit -> input_elt
      val int32_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> input_elt
      val int64_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> input_elt
      val float_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of float ] Eliom_parameters.param_name ->
        value:float -> unit -> input_elt
      val string_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of string ] Eliom_parameters.param_name ->
        value:string -> unit -> input_elt
      val user_type_checkbox :
        ('-> string) ->
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Set of 'a ] Eliom_parameters.param_name ->
        value:'-> unit -> input_elt
      val raw_checkbox :
        ?a:input_attrib_t ->
        ?checked:bool -> name:string -> value:string -> unit -> input_elt
      val string_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of string ] Eliom_parameters.param_name ->
        value:string -> unit -> input_elt
      val int_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of int ] Eliom_parameters.param_name ->
        value:int -> unit -> input_elt
      val int32_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of int32 ] Eliom_parameters.param_name ->
        value:int32 -> unit -> input_elt
      val int64_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of int64 ] Eliom_parameters.param_name ->
        value:int64 -> unit -> input_elt
      val float_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of float ] Eliom_parameters.param_name ->
        value:float -> unit -> input_elt
      val user_type_radio :
        ('-> string) ->
        ?a:input_attrib_t ->
        ?checked:bool ->
        name:[ `Radio of 'a ] Eliom_parameters.param_name ->
        value:'-> unit -> input_elt
      val raw_radio :
        ?a:input_attrib_t ->
        ?checked:bool -> name:string -> value:string -> unit -> input_elt
      val string_button :
        ?a:button_attrib_t ->
        name:[< string Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:string -> button_content_elt_list -> button_elt
      val int_button :
        ?a:button_attrib_t ->
        name:[< int Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int -> button_content_elt_list -> button_elt
      val int32_button :
        ?a:button_attrib_t ->
        name:[< int32 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int32 -> button_content_elt_list -> button_elt
      val int64_button :
        ?a:button_attrib_t ->
        name:[< int64 Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:int64 -> button_content_elt_list -> button_elt
      val float_button :
        ?a:button_attrib_t ->
        name:[< float Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:float -> button_content_elt_list -> button_elt
      val user_type_button :
        ('-> string) ->
        ?a:button_attrib_t ->
        name:[< 'Eliom_parameters.setone ] Eliom_parameters.param_name ->
        value:'-> button_content_elt_list -> button_elt
      val raw_button :
        ?a:button_attrib_t ->
        button_type:button_type_t ->
        name:string -> value:string -> button_content_elt_list -> button_elt
      val button :
        ?a:button_attrib_t ->
        button_type:button_type_t -> button_content_elt_list -> button_elt
      val textarea :
        ?a:textarea_attrib_t ->
        name:[< string Eliom_parameters.setoneradio ]
             Eliom_parameters.param_name ->
        ?value:string -> rows:int -> cols:int -> unit -> textarea_elt
      val raw_textarea :
        ?a:textarea_attrib_t ->
        name:string ->
        ?value:string -> rows:int -> cols:int -> unit -> textarea_elt
      type 'a soption = option_attrib_t * 'a * pcdata_elt option * bool
      type 'a select_opt =
          Optgroup of optgroup_attrib_t * string * 'a soption *
            'a soption list
        | Option of 'a soption
      val raw_select :
        ?a:select_attrib_t ->
        name:string ->
        string select_opt -> string select_opt list -> select_elt
      val int_select :
        ?a:select_attrib_t ->
        name:[< `One of int ] Eliom_parameters.param_name ->
        int select_opt -> int select_opt list -> select_elt
      val int32_select :
        ?a:select_attrib_t ->
        name:[< `One of int32 ] Eliom_parameters.param_name ->
        int32 select_opt -> int32 select_opt list -> select_elt
      val int64_select :
        ?a:select_attrib_t ->
        name:[< `One of int64 ] Eliom_parameters.param_name ->
        int64 select_opt -> int64 select_opt list -> select_elt
      val float_select :
        ?a:select_attrib_t ->
        name:[< `One of float ] Eliom_parameters.param_name ->
        float select_opt -> float select_opt list -> select_elt
      val string_select :
        ?a:select_attrib_t ->
        name:[< `One of string ] Eliom_parameters.param_name ->
        string select_opt -> string select_opt list -> select_elt
      val user_type_select :
        ('-> string) ->
        ?a:select_attrib_t ->
        name:[< `One of 'a ] Eliom_parameters.param_name ->
        'a select_opt -> 'a select_opt list -> select_elt
      val raw_multiple_select :
        ?a:select_attrib_t ->
        name:string ->
        string select_opt -> string select_opt list -> select_elt
      val int_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of int ] Eliom_parameters.param_name ->
        int select_opt -> int select_opt list -> select_elt
      val int32_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of int32 ] Eliom_parameters.param_name ->
        int32 select_opt -> int32 select_opt list -> select_elt
      val int64_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of int64 ] Eliom_parameters.param_name ->
        int64 select_opt -> int64 select_opt list -> select_elt
      val float_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of float ] Eliom_parameters.param_name ->
        float select_opt -> float select_opt list -> select_elt
      val string_multiple_select :
        ?a:select_attrib_t ->
        name:[< `Set of string ] Eliom_parameters.param_name ->
        string select_opt -> string select_opt list -> select_elt
      val user_type_multiple_select :
        ('-> string) ->
        ?a:select_attrib_t ->
        name:[< `Set of 'a ] Eliom_parameters.param_name ->
        'a select_opt -> 'a select_opt list -> select_elt
    end
  module CssText :
    sig
      type page = string
      type options
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        sp:Eliom_sessions.server_params ->
        page -> Ocsigen_http_frame.result Lwt.t
      val register :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?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 ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_lib.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            sp:Eliom_sessions.server_params ->
            page -> Ocsigen_http_frame.result Lwt.t
          val register :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?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 ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_lib.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
    end
  module Text :
    sig
      type page = string * string
      type options
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        sp:Eliom_sessions.server_params ->
        page -> Ocsigen_http_frame.result Lwt.t
      val register :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?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 ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_lib.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            sp:Eliom_sessions.server_params ->
            page -> Ocsigen_http_frame.result Lwt.t
          val register :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?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 ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_lib.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
    end
  module Action :
    sig
      type page = unit
      type options = [ `NoReload | `Reload ]
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        sp:Eliom_sessions.server_params ->
        page -> Ocsigen_http_frame.result Lwt.t
      val register :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?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 ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_lib.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            sp:Eliom_sessions.server_params ->
            page -> Ocsigen_http_frame.result Lwt.t
          val register :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?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 ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_lib.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
    end
  module Unit :
    sig
      type page = unit
      type options
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        sp:Eliom_sessions.server_params ->
        page -> Ocsigen_http_frame.result Lwt.t
      val register :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?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 ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_lib.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            sp:Eliom_sessions.server_params ->
            page -> Ocsigen_http_frame.result Lwt.t
          val register :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?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 ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_lib.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
    end
  module Redirection :
    sig
      type page =
          (unit, unit, Eliom_services.get_service_kind, [ `WithoutSuffix ],
           unit, unit, Eliom_services.registrable)
          Eliom_services.service
      type options = [ `Permanent | `Temporary ]
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        sp:Eliom_sessions.server_params ->
        page -> Ocsigen_http_frame.result Lwt.t
      val register :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?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 ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_lib.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            sp:Eliom_sessions.server_params ->
            page -> Ocsigen_http_frame.result Lwt.t
          val register :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?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 ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_lib.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
    end
  module String_redirection :
    sig
      type page = XHTML.M.uri
      type options = [ `Permanent | `Temporary ]
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        sp:Eliom_sessions.server_params ->
        page -> Ocsigen_http_frame.result Lwt.t
      val register :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?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 ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_lib.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            sp:Eliom_sessions.server_params ->
            page -> Ocsigen_http_frame.result Lwt.t
          val register :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?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 ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_lib.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
    end
  module Files :
    sig
      type page = string
      type options
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        sp:Eliom_sessions.server_params ->
        page -> Ocsigen_http_frame.result Lwt.t
      val register :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?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 ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_lib.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            sp:Eliom_sessions.server_params ->
            page -> Ocsigen_http_frame.result Lwt.t
          val register :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?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 ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_lib.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
    end
  module Any :
    sig
      type page = Ocsigen_http_frame.result
      type options
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        sp:Eliom_sessions.server_params ->
        page -> Ocsigen_http_frame.result Lwt.t
      val register :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?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 ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_lib.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            sp:Eliom_sessions.server_params ->
            page -> Ocsigen_http_frame.result Lwt.t
          val register :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?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 ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_lib.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
    end
  module Streamlist :
    sig
      type page = (unit -> string Ocsigen_stream.t Lwt.t) list * string
      type options
      val send :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        sp:Eliom_sessions.server_params ->
        page -> Ocsigen_http_frame.result Lwt.t
      val register :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?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 ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        service:('a, 'b, [< Eliom_services.internal_service_kind ],
                 [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                Eliom_services.service ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        path:Ocsigen_lib.url_path ->
        get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                   Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom_services.a_s ],
         'b, 'c, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [ `WithoutSuffix ], unit, unit,
                  [< Eliom_services.registrable ])
                 Eliom_services.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ]
              Eliom_services.a_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
         [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
        Eliom_services.service
      val register_new_post_service :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit,
                  [< `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_session_name:string ->
        ?csrf_secure_session:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom_services.a_s ],
                  [< Eliom_services.suff ] as 'b, 'c, unit, [ `Registrable ])
                 Eliom_services.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ]
              Eliom_services.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom_services.service
      val register_new_post_coservice_for_session' :
        ?options:options ->
        ?cookies:Eliom_services.cookie list ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?session_name:string ->
        ?secure:bool ->
        sp:Eliom_sessions.server_params ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameters.params_type ->
        ?error_handler:(Eliom_sessions.server_params ->
                        (string * exn) list -> page Lwt.t) ->
        (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
         [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
        Eliom_services.service
      module Cookies :
        sig
          type page = page * Eliom_services.cookie list
          type options
          val send :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            sp:Eliom_sessions.server_params ->
            page -> Ocsigen_http_frame.result Lwt.t
          val register :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?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 ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            service:('a, 'b, [< Eliom_services.internal_service_kind ],
                     [< Eliom_services.suff ], 'c, 'd, [ `Registrable ])
                    Eliom_services.service ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            path:Ocsigen_lib.url_path ->
            get_params:('a, [< Eliom_services.suff ] as 'b, 'c)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Service ] * [> `Get ] ]
                  Eliom_services.a_s ],
             'b, 'c, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [ `WithoutSuffix ], unit, unit,
                      [< Eliom_services.registrable ])
                     Eliom_services.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ]
                  Eliom_services.a_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_services.na_s ],
             [ `WithoutSuffix ], 'b, unit, [> `Registrable ])
            Eliom_services.service
          val register_new_post_service :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [< `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?csrf_session_name:string ->
            ?csrf_secure_session:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?https:bool ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          Eliom_services.a_s ],
                      [< Eliom_services.suff ] as 'b, 'c, unit,
                      [ `Registrable ])
                     Eliom_services.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ]
                  Eliom_services.a_s ],
             'b, 'c, 'e, [> `Registrable ])
            Eliom_services.service
          val register_new_post_coservice_for_session' :
            ?options:options ->
            ?cookies:Eliom_services.cookie list ->
            ?charset:string ->
            ?code:int ->
            ?content_type:string ->
            ?headers:Http_headers.t ->
            ?session_name:string ->
            ?secure:bool ->
            sp:Eliom_sessions.server_params ->
            ?name:string ->
            ?csrf_safe:bool ->
            ?max_use:int ->
            ?timeout:float ->
            ?keep_get_na_params:bool ->
            ?https:bool ->
            post_params:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameters.params_type ->
            ?error_handler:(Eliom_sessions.server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (Eliom_sessions.server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_services.na_s ],
             [ `WithoutSuffix ], unit, 'b, [> `Registrable ])
            Eliom_services.service
        end
    end
end