sig
  type 'a kind
  type http_service = Eliom_service.http_service
  type browser_content = [ `Browser ]
  type block_content
  type unknown_content
  type appl_service = Eliom_service.appl_service
  type 'a application_content = [ `Appl of 'a ]
  type 'a application_name
  type 'a ocaml_content
  type non_ocaml_service = Eliom_service.non_ocaml_service
  module type Registration =
    sig
      type page
      type options
      type return
      type result
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.Registration.options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                 Eliom_registration.Registration.return)
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('get -> 'post -> Eliom_registration.Registration.page Lwt.t) -> unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.Registration.options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('get -> unit -> Eliom_registration.Registration.page Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.Registration.return)
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.Registration.options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ],
                  Eliom_registration.Registration.return)
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('get -> unit -> Eliom_registration.Registration.page Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.Registration.return)
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.Registration.options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('get -> unit -> Eliom_registration.Registration.page Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.Registration.return)
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.Registration.options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], Eliom_registration.Registration.return)
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('get -> 'post -> Eliom_registration.Registration.page Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.Registration.return)
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.Registration.options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], Eliom_registration.Registration.return)
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('get -> 'post -> Eliom_registration.Registration.page Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.Registration.return)
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.Registration.options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        (unit -> 'post -> Eliom_registration.Registration.page Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.Registration.return)
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.Registration.options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Eliom_registration.Registration.page Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.Registration.return)
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.Registration.options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  Eliom_registration.Registration.return)
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Eliom_registration.Registration.page Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.Registration.return)
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.Registration.options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Eliom_registration.Registration.page Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.Registration.return)
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.Registration.options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Eliom_registration.Registration.page Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.Registration.return)
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.Registration.options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  Eliom_registration.Registration.return)
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Eliom_registration.Registration.page Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.Registration.return)
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.Registration.options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Eliom_registration.Registration.page Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.Registration.return)
        Eliom_service.service
      val send :
        ?options:Eliom_registration.Registration.options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        Eliom_registration.Registration.page ->
        Eliom_registration.Registration.result Lwt.t
    end
  module Html5_registration :
    sig
      type page = Html5_types.html Eliom_content.Html5.elt
      type options = unit
      type return = Eliom_registration.http_service
      type result =
          Eliom_registration.browser_content Eliom_registration.kind
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                 [< Eliom_service.http_service ])
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> 'post -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> unit -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.http_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> unit -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> unit -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.http_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> 'post -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.http_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> 'post -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        (unit -> 'post -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.http_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.http_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val send :
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        Html5_types.html Eliom_content.Html5.elt ->
        Eliom_registration.browser_content Eliom_registration.kind Lwt.t
    end
  module Html5 :
    sig
      type page = Html5_types.html Eliom_content.Html5.elt
      type options = unit
      type return = Eliom_registration.http_service
      type result =
          Eliom_registration.browser_content Eliom_registration.kind
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                 [< Eliom_service.http_service ])
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> 'post -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> unit -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.http_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> unit -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> unit -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.http_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> 'post -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.http_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> 'post -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        (unit -> 'post -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.http_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.http_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val send :
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        Html5_types.html Eliom_content.Html5.elt ->
        Eliom_registration.browser_content Eliom_registration.kind Lwt.t
    end
  module type APPL_PARAMS = sig val application_name : string end
  type appl_service_options = { do_not_launch : bool; }
  val default_appl_service_options : Eliom_registration.appl_service_options
  module type ELIOM_APPL =
    sig
      val application_script :
        ?async:bool -> unit -> [> `Script ] Eliom_content.Html5.elt
      val application_name : string
      val is_initial_request : unit -> bool
      type appl
      type page = Html5_types.html Eliom_content.Html5.elt
      type options = Eliom_registration.appl_service_options
      type return = Eliom_registration.appl_service
      type result =
          Eliom_registration.ELIOM_APPL.appl
          Eliom_registration.application_content Eliom_registration.kind
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.appl_service_options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                 [< Eliom_service.non_ocaml_service ])
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> 'post -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.appl_service_options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> unit -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.appl_service ])
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.appl_service_options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> unit -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.appl_service ])
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.appl_service_options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> unit -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.appl_service ])
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.appl_service_options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> 'post -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.appl_service ])
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.appl_service_options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get -> 'post -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.appl_service ])
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.appl_service_options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        (unit -> 'post -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.appl_service ])
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.appl_service_options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.appl_service ])
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.appl_service_options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.appl_service ])
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.appl_service_options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.appl_service ])
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.appl_service_options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.appl_service ])
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.appl_service_options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.appl_service ])
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:Eliom_registration.appl_service_options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.appl_service ])
        Eliom_service.service
      val send :
        ?options:Eliom_registration.appl_service_options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        Html5_types.html Eliom_content.Html5.elt ->
        Eliom_registration.ELIOM_APPL.appl
        Eliom_registration.application_content Eliom_registration.kind Lwt.t
      val typed_name :
        Eliom_registration.ELIOM_APPL.appl
        Eliom_registration.application_name
    end
  module App : functor (Appl_params : APPL_PARAMS-> ELIOM_APPL
  module type TMPL_PARAMS =
    sig
      type t
      val name : string
      val make_page :
        Eliom_registration.TMPL_PARAMS.t ->
        Html5_types.html Eliom_content.Html5.elt Lwt.t
      val update :
        Eliom_registration.TMPL_PARAMS.t -> unit Eliom_lib.client_value
    end
  module Eliom_tmpl :
    functor (Appl : ELIOM_APPL) (Tmpl_param : TMPL_PARAMS->
      sig
        type page = Tmpl_param.t
        type options = Eliom_registration.appl_service_options
        type return = Eliom_registration.appl_service
        type result =
            Appl.appl Eliom_registration.application_content
            Eliom_registration.kind
        val register :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Eliom_registration.appl_service_options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          service:('get, 'post, [< Eliom_service.service_method ],
                   [< Eliom_service.attached ],
                   [< Eliom_service.internal_service_kind ],
                   [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                   [< Eliom_service.non_ocaml_service ])
                  Eliom_service.service ->
          ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
          ('get -> 'post -> Tmpl_param.t Lwt.t) -> unit
        val register_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Eliom_registration.appl_service_options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?priority:int ->
          path:Eliom_lib.Url.path ->
          get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
          ('get -> unit -> Tmpl_param.t Lwt.t) ->
          ('get, unit, [< Eliom_service.service_method > `Get ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.appl_service ])
          Eliom_service.service
        val register_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Eliom_registration.appl_service_options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                    [ `Service ], [ `WithoutSuffix ], unit, unit,
                    [< Eliom_service.registrable ],
                    [< Eliom_service.non_ocaml_service ])
                   Eliom_service.service ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
          ('get -> unit -> Tmpl_param.t Lwt.t) ->
          ('get, unit, [< Eliom_service.service_method > `Get ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `AttachedCoservice ],
           [ `WithoutSuffix ], 'gn, unit,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.appl_service ])
          Eliom_service.service
        val register_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Eliom_registration.appl_service_options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
          ('get -> unit -> Tmpl_param.t Lwt.t) ->
          ('get, unit, [< Eliom_service.service_method > `Get ],
           [< Eliom_service.attached > `Nonattached ],
           [< Eliom_service.service_kind > `NonattachedCoservice ],
           [ `WithoutSuffix ], 'gn, unit,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.appl_service ])
          Eliom_service.service
        val register_post_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Eliom_registration.appl_service_options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?priority:int ->
          fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                    [ `AttachedCoservice | `Service ],
                    [< Eliom_service.suff ] as 'a, 'gn, unit,
                    [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                   Eliom_service.service ->
          post_params:('post, [ `WithoutSuffix ], 'pn)
                      Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
          ('get -> 'post -> Tmpl_param.t Lwt.t) ->
          ('get, 'post, [< Eliom_service.service_method > `Post ],
           [< Eliom_service.attached > `Attached ],
           [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.appl_service ])
          Eliom_service.service
        val register_post_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Eliom_registration.appl_service_options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                    [< `AttachedCoservice | `Service ],
                    [< Eliom_service.suff ] as 'a, 'gn, unit,
                    [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                   Eliom_service.service ->
          post_params:('post, [ `WithoutSuffix ], 'pn)
                      Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
          ('get -> 'post -> Tmpl_param.t Lwt.t) ->
          ('get, 'post, [< Eliom_service.service_method > `Post ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn,
           'pn, [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.appl_service ])
          Eliom_service.service
        val register_post_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Eliom_registration.appl_service_options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?keep_get_na_params:bool ->
          ?https:bool ->
          post_params:('post, [ `WithoutSuffix ], 'pn)
                      Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
          (unit -> 'post -> Tmpl_param.t Lwt.t) ->
          (unit, 'post, [< Eliom_service.service_method > `Post ],
           [< Eliom_service.attached > `Nonattached ],
           [< Eliom_service.service_kind > `NonattachedCoservice ],
           [ `WithoutSuffix ], unit, 'pn,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.appl_service ])
          Eliom_service.service
        val register_put_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Eliom_registration.appl_service_options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?priority:int ->
          path:Eliom_lib.Url.path ->
          get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> Tmpl_param.t Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Put ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `Service ], 'a, 'gn,
           Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.appl_service ])
          Eliom_service.service
        val register_put_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Eliom_registration.appl_service_options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                    Eliom_service.attached_kind, [ `Service ],
                    [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                    [< Eliom_service.registrable ],
                    [< Eliom_service.non_ocaml_service ])
                   Eliom_service.service ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> Tmpl_param.t Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Put ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `AttachedCoservice ],
           [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.appl_service ])
          Eliom_service.service
        val register_put_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Eliom_registration.appl_service_options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> Tmpl_param.t Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Put ],
           [< Eliom_service.attached > `Nonattached ],
           [< Eliom_service.service_kind > `NonattachedCoservice ],
           [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.appl_service ])
          Eliom_service.service
        val register_delete_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Eliom_registration.appl_service_options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?priority:int ->
          path:Eliom_lib.Url.path ->
          get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> Tmpl_param.t Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Delete ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `Service ], 'a, 'gn,
           Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.appl_service ])
          Eliom_service.service
        val register_delete_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Eliom_registration.appl_service_options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                    Eliom_service.attached_kind, [ `Service ],
                    [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                    [< Eliom_service.registrable ],
                    [< Eliom_service.non_ocaml_service ])
                   Eliom_service.service ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> Tmpl_param.t Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Delete ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `AttachedCoservice ],
           [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.appl_service ])
          Eliom_service.service
        val register_delete_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Eliom_registration.appl_service_options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> Tmpl_param.t Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Delete ],
           [< Eliom_service.attached > `Nonattached ],
           [< Eliom_service.service_kind > `NonattachedCoservice ],
           [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.appl_service ])
          Eliom_service.service
        val send :
          ?options:Eliom_registration.appl_service_options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          Tmpl_param.t ->
          Appl.appl Eliom_registration.application_content
          Eliom_registration.kind Lwt.t
      end
  module Flow5 :
    sig
      type page = Html5_types.flow5 Eliom_content.Html5.elt list
      type options = unit
      type return = Eliom_registration.http_service
      type result = Eliom_registration.block_content Eliom_registration.kind
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                 [< Eliom_service.non_ocaml_service ])
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get ->
         'post -> Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get -> unit -> Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get -> unit -> Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get -> unit -> Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get ->
         'post -> Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get ->
         'post -> Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        (unit ->
         'post -> Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         Html5_types.flow5 Eliom_content.Html5.elt list Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val send :
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        Html5_types.flow5 Eliom_content.Html5.elt list ->
        Eliom_registration.block_content Eliom_registration.kind Lwt.t
    end
  module Make_typed_xml_registration :
    functor
      (Xml : Xml_sigs.Iterable) (Typed_xml : sig
                                               module Info : Xml_sigs.Info
                                               type 'a elt
                                               type doc
                                               val toelt : 'a elt -> Xml.elt
                                               val doc_toelt : doc -> Xml.elt
                                             end) (E : sig type content end->
      sig
        type page = E.content Typed_xml.elt list
        type options = unit
        type return = Eliom_registration.http_service
        type result =
            Eliom_registration.block_content Eliom_registration.kind
        val register :
          ?scope:[< Eliom_common.scope ] ->
          ?options:unit ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          service:('get, 'post, [< Eliom_service.service_method ],
                   [< Eliom_service.attached ],
                   [< Eliom_service.internal_service_kind ],
                   [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                   [< Eliom_service.non_ocaml_service ])
                  Eliom_service.service ->
          ?error_handler:((string * exn) list ->
                          E.content Typed_xml.elt list Lwt.t) ->
          ('get -> 'post -> E.content Typed_xml.elt list Lwt.t) -> unit
        val register_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:unit ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?priority:int ->
          path:Eliom_lib.Url.path ->
          get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list ->
                          E.content Typed_xml.elt list Lwt.t) ->
          ('get -> unit -> E.content Typed_xml.elt list Lwt.t) ->
          ('get, unit, [< Eliom_service.service_method > `Get ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.http_service ])
          Eliom_service.service
        val register_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:unit ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                    [ `Service ], [ `WithoutSuffix ], unit, unit,
                    [< Eliom_service.registrable ],
                    [< Eliom_service.non_ocaml_service ])
                   Eliom_service.service ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list ->
                          E.content Typed_xml.elt list Lwt.t) ->
          ('get -> unit -> E.content Typed_xml.elt list Lwt.t) ->
          ('get, unit, [< Eliom_service.service_method > `Get ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `AttachedCoservice ],
           [ `WithoutSuffix ], 'gn, unit,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.http_service ])
          Eliom_service.service
        val register_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:unit ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list ->
                          E.content Typed_xml.elt list Lwt.t) ->
          ('get -> unit -> E.content Typed_xml.elt list Lwt.t) ->
          ('get, unit, [< Eliom_service.service_method > `Get ],
           [< Eliom_service.attached > `Nonattached ],
           [< Eliom_service.service_kind > `NonattachedCoservice ],
           [ `WithoutSuffix ], 'gn, unit,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.http_service ])
          Eliom_service.service
        val register_post_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:unit ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?priority:int ->
          fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                    [ `AttachedCoservice | `Service ],
                    [< Eliom_service.suff ] as 'a, 'gn, unit,
                    [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                   Eliom_service.service ->
          post_params:('post, [ `WithoutSuffix ], 'pn)
                      Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list ->
                          E.content Typed_xml.elt list Lwt.t) ->
          ('get -> 'post -> E.content Typed_xml.elt list Lwt.t) ->
          ('get, 'post, [< Eliom_service.service_method > `Post ],
           [< Eliom_service.attached > `Attached ],
           [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.http_service ])
          Eliom_service.service
        val register_post_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:unit ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                    [< `AttachedCoservice | `Service ],
                    [< Eliom_service.suff ] as 'a, 'gn, unit,
                    [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                   Eliom_service.service ->
          post_params:('post, [ `WithoutSuffix ], 'pn)
                      Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list ->
                          E.content Typed_xml.elt list Lwt.t) ->
          ('get -> 'post -> E.content Typed_xml.elt list Lwt.t) ->
          ('get, 'post, [< Eliom_service.service_method > `Post ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn,
           'pn, [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.http_service ])
          Eliom_service.service
        val register_post_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:unit ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?keep_get_na_params:bool ->
          ?https:bool ->
          post_params:('post, [ `WithoutSuffix ], 'pn)
                      Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list ->
                          E.content Typed_xml.elt list Lwt.t) ->
          (unit -> 'post -> E.content Typed_xml.elt list Lwt.t) ->
          (unit, 'post, [< Eliom_service.service_method > `Post ],
           [< Eliom_service.attached > `Nonattached ],
           [< Eliom_service.service_kind > `NonattachedCoservice ],
           [ `WithoutSuffix ], unit, 'pn,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.http_service ])
          Eliom_service.service
        val register_put_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:unit ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?priority:int ->
          path:Eliom_lib.Url.path ->
          get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list ->
                          E.content Typed_xml.elt list Lwt.t) ->
          ('get ->
           Eliom_parameter.raw_post_data ->
           E.content Typed_xml.elt list Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Put ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `Service ], 'a, 'gn,
           Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.http_service ])
          Eliom_service.service
        val register_put_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:unit ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                    Eliom_service.attached_kind, [ `Service ],
                    [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                    [< Eliom_service.registrable ],
                    [< Eliom_service.non_ocaml_service ])
                   Eliom_service.service ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list ->
                          E.content Typed_xml.elt list Lwt.t) ->
          ('get ->
           Eliom_parameter.raw_post_data ->
           E.content Typed_xml.elt list Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Put ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `AttachedCoservice ],
           [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.http_service ])
          Eliom_service.service
        val register_put_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:unit ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list ->
                          E.content Typed_xml.elt list Lwt.t) ->
          ('get ->
           Eliom_parameter.raw_post_data ->
           E.content Typed_xml.elt list Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Put ],
           [< Eliom_service.attached > `Nonattached ],
           [< Eliom_service.service_kind > `NonattachedCoservice ],
           [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.http_service ])
          Eliom_service.service
        val register_delete_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:unit ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?priority:int ->
          path:Eliom_lib.Url.path ->
          get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list ->
                          E.content Typed_xml.elt list Lwt.t) ->
          ('get ->
           Eliom_parameter.raw_post_data ->
           E.content Typed_xml.elt list Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Delete ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `Service ], 'a, 'gn,
           Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.http_service ])
          Eliom_service.service
        val register_delete_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:unit ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                    Eliom_service.attached_kind, [ `Service ],
                    [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                    [< Eliom_service.registrable ],
                    [< Eliom_service.non_ocaml_service ])
                   Eliom_service.service ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list ->
                          E.content Typed_xml.elt list Lwt.t) ->
          ('get ->
           Eliom_parameter.raw_post_data ->
           E.content Typed_xml.elt list Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Delete ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `AttachedCoservice ],
           [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.http_service ])
          Eliom_service.service
        val register_delete_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:unit ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list ->
                          E.content Typed_xml.elt list Lwt.t) ->
          ('get ->
           Eliom_parameter.raw_post_data ->
           E.content Typed_xml.elt list Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Delete ],
           [< Eliom_service.attached > `Nonattached ],
           [< Eliom_service.service_kind > `NonattachedCoservice ],
           [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ],
           [> Eliom_service.http_service ])
          Eliom_service.service
        val send :
          ?options:unit ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          E.content Typed_xml.elt list ->
          Eliom_registration.block_content Eliom_registration.kind Lwt.t
      end
  module Html_text :
    sig
      type page = string
      type options = unit
      type return = Eliom_registration.http_service
      type result =
          Eliom_registration.browser_content Eliom_registration.kind
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                 [< Eliom_service.non_ocaml_service ])
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> 'post -> string Lwt.t) -> unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> unit -> string Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> unit -> string Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> unit -> string Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> 'post -> string Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> 'post -> string Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        (unit -> 'post -> string Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val send :
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        string ->
        Eliom_registration.browser_content Eliom_registration.kind Lwt.t
    end
  module CssText :
    sig
      type page = string
      type options = int
      type return = Eliom_registration.http_service
      type result =
          Eliom_registration.browser_content Eliom_registration.kind
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                 [< Eliom_service.non_ocaml_service ])
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> 'post -> string Lwt.t) -> unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> unit -> string Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> unit -> string Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> unit -> string Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> 'post -> string Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> 'post -> string Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        (unit -> 'post -> string Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val send :
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        string ->
        Eliom_registration.browser_content Eliom_registration.kind Lwt.t
    end
  module Action :
    sig
      type page = unit
      type options = [ `NoReload | `Reload ]
      type return = Eliom_registration.http_service
      type result =
          Eliom_registration.browser_content Eliom_registration.kind
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `NoReload | `Reload ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                 [< Eliom_service.non_ocaml_service ])
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> 'post -> unit Lwt.t) -> unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `NoReload | `Reload ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> unit -> unit Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `NoReload | `Reload ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> unit -> unit Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `NoReload | `Reload ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> unit -> unit Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `NoReload | `Reload ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> 'post -> unit Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `NoReload | `Reload ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> 'post -> unit Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `NoReload | `Reload ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        (unit -> 'post -> unit Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `NoReload | `Reload ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> unit Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `NoReload | `Reload ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> unit Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `NoReload | `Reload ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> unit Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `NoReload | `Reload ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> unit Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `NoReload | `Reload ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> unit Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `NoReload | `Reload ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> unit Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val send :
        ?options:[ `NoReload | `Reload ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        unit ->
        Eliom_registration.browser_content Eliom_registration.kind Lwt.t
    end
  module Unit :
    sig
      type page = unit
      type options = unit
      type return = Eliom_registration.http_service
      type result =
          Eliom_registration.browser_content Eliom_registration.kind
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                 [< Eliom_service.non_ocaml_service ])
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> 'post -> unit Lwt.t) -> unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> unit -> unit Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> unit -> unit Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> unit -> unit Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> 'post -> unit Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> 'post -> unit Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        (unit -> 'post -> unit Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> unit Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> unit Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> unit Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> unit Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> unit Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> unit Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val send :
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        unit ->
        Eliom_registration.browser_content Eliom_registration.kind Lwt.t
    end
  module Redirection :
    sig
      type ('a, 'b) page =
          (unit, unit, Eliom_service.get_service_kind,
           Eliom_service.attached, Eliom_service.service_kind,
           [ `WithoutSuffix ], unit, unit, Eliom_service.registrable, 'b)
          Eliom_service.service
      type options =
          [ `Found
          | `MovedPermanently
          | `NotNodifed
          | `SeeOther
          | `TemporaryRedirect
          | `UseProxy ]
      type 'b return = 'b
      type 'a result = 'Eliom_registration.kind
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ], 'b)
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         Eliom_service.attached, Eliom_service.service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         'post ->
         (unit, unit, Eliom_service.get_service_kind, Eliom_service.attached,
          Eliom_service.service_kind, [ `WithoutSuffix ], unit, unit,
          Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         Eliom_service.attached, Eliom_service.service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         unit ->
         (unit, unit, Eliom_service.get_service_kind, Eliom_service.attached,
          Eliom_service.service_kind, [ `WithoutSuffix ], unit, unit,
          Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ], 'b)
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         Eliom_service.attached, Eliom_service.service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         unit ->
         (unit, unit, Eliom_service.get_service_kind, Eliom_service.attached,
          Eliom_service.service_kind, [ `WithoutSuffix ], unit, unit,
          Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         Eliom_service.attached, Eliom_service.service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         unit ->
         (unit, unit, Eliom_service.get_service_kind, Eliom_service.attached,
          Eliom_service.service_kind, [ `WithoutSuffix ], unit, unit,
          Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], 'b)
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         Eliom_service.attached, Eliom_service.service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         'post ->
         (unit, unit, Eliom_service.get_service_kind, Eliom_service.attached,
          Eliom_service.service_kind, [ `WithoutSuffix ], unit, unit,
          Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], 'b)
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         Eliom_service.attached, Eliom_service.service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         'post ->
         (unit, unit, Eliom_service.get_service_kind, Eliom_service.attached,
          Eliom_service.service_kind, [ `WithoutSuffix ], unit, unit,
          Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         Eliom_service.attached, Eliom_service.service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        (unit ->
         'post ->
         (unit, unit, Eliom_service.get_service_kind, Eliom_service.attached,
          Eliom_service.service_kind, [ `WithoutSuffix ], unit, unit,
          Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         Eliom_service.attached, Eliom_service.service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         (unit, unit, Eliom_service.get_service_kind, Eliom_service.attached,
          Eliom_service.service_kind, [ `WithoutSuffix ], unit, unit,
          Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ], 'b)
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         Eliom_service.attached, Eliom_service.service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         (unit, unit, Eliom_service.get_service_kind, Eliom_service.attached,
          Eliom_service.service_kind, [ `WithoutSuffix ], unit, unit,
          Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         Eliom_service.attached, Eliom_service.service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         (unit, unit, Eliom_service.get_service_kind, Eliom_service.attached,
          Eliom_service.service_kind, [ `WithoutSuffix ], unit, unit,
          Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         Eliom_service.attached, Eliom_service.service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         (unit, unit, Eliom_service.get_service_kind, Eliom_service.attached,
          Eliom_service.service_kind, [ `WithoutSuffix ], unit, unit,
          Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ], 'b)
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         Eliom_service.attached, Eliom_service.service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         (unit, unit, Eliom_service.get_service_kind, Eliom_service.attached,
          Eliom_service.service_kind, [ `WithoutSuffix ], unit, unit,
          Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         Eliom_service.attached, Eliom_service.service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         (unit, unit, Eliom_service.get_service_kind, Eliom_service.attached,
          Eliom_service.service_kind, [ `WithoutSuffix ], unit, unit,
          Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val send :
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        (unit, unit, Eliom_service.get_service_kind, Eliom_service.attached,
         Eliom_service.service_kind, [ `WithoutSuffix ], unit, unit,
         Eliom_service.registrable, 'b)
        Eliom_service.service -> 'Eliom_registration.kind Lwt.t
    end
  module String_redirection :
    sig
      type page = Eliom_lib.Url.uri
      type options =
          [ `Found
          | `MovedPermanently
          | `NotNodifed
          | `SeeOther
          | `TemporaryRedirect
          | `UseProxy ]
      type return = Eliom_registration.http_service
      type result =
          Eliom_registration.browser_content Eliom_registration.kind
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                 [< Eliom_service.non_ocaml_service ])
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('get -> 'post -> Eliom_lib.Url.uri Lwt.t) -> unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('get -> unit -> Eliom_lib.Url.uri Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('get -> unit -> Eliom_lib.Url.uri Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('get -> unit -> Eliom_lib.Url.uri Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('get -> 'post -> Eliom_lib.Url.uri Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('get -> 'post -> Eliom_lib.Url.uri Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        (unit -> 'post -> Eliom_lib.Url.uri Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> Eliom_lib.Url.uri Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> Eliom_lib.Url.uri Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> Eliom_lib.Url.uri Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> Eliom_lib.Url.uri Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> Eliom_lib.Url.uri Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> Eliom_lib.Url.uri Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val send :
        ?options:[ `Found
                 | `MovedPermanently
                 | `NotNodifed
                 | `SeeOther
                 | `TemporaryRedirect
                 | `UseProxy ] ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        Eliom_lib.Url.uri ->
        Eliom_registration.browser_content Eliom_registration.kind Lwt.t
    end
  module File :
    sig
      val check_file : string -> bool
      type page = string
      type options = int
      type return = Eliom_registration.http_service
      type result =
          Eliom_registration.browser_content Eliom_registration.kind
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                 [< Eliom_service.non_ocaml_service ])
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> 'post -> string Lwt.t) -> unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> unit -> string Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> unit -> string Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> unit -> string Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> 'post -> string Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> 'post -> string Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        (unit -> 'post -> string Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> string Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val send :
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        string ->
        Eliom_registration.browser_content Eliom_registration.kind Lwt.t
    end
  module File_ct :
    sig
      val check_file : string -> bool
      type page = string * string
      type options = int
      type return = Eliom_registration.http_service
      type result =
          Eliom_registration.browser_content Eliom_registration.kind
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                 [< Eliom_service.non_ocaml_service ])
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> 'post -> (string * string) Lwt.t) -> unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> unit -> (string * string) Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> unit -> (string * string) Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> unit -> (string * string) Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> 'post -> (string * string) Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> 'post -> (string * string) Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        (unit -> 'post -> (string * string) Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> (string * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> (string * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> (string * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> (string * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> (string * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> (string * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val send :
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        string * string ->
        Eliom_registration.browser_content Eliom_registration.kind Lwt.t
    end
  module Ocaml :
    sig
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                 'return Eliom_service.ocaml_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> 'return Lwt.t) ->
        ('get -> 'post -> 'return Lwt.t) -> unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'return Lwt.t) ->
        ('get -> unit -> 'return Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         'return Eliom_service.ocaml_service)
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ],
                  'return Eliom_service.ocaml_service)
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'return Lwt.t) ->
        ('get -> unit -> 'return Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         'return Eliom_service.ocaml_service)
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'return Lwt.t) ->
        ('get -> unit -> 'return Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         'return Eliom_service.ocaml_service)
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], 'return Eliom_service.ocaml_service)
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'return Lwt.t) ->
        ('get -> 'post -> 'return Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         'return Eliom_service.ocaml_service)
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], 'return Eliom_service.ocaml_service)
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'return Lwt.t) ->
        ('get -> 'post -> 'return Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         'return Eliom_service.ocaml_service)
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'return Lwt.t) ->
        (unit -> 'post -> 'return Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         'return Eliom_service.ocaml_service)
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'return Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> 'return Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         'return Eliom_service.ocaml_service)
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  'return Eliom_service.ocaml_service)
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'return Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> 'return Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         'return Eliom_service.ocaml_service)
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'return Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> 'return Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         'return Eliom_service.ocaml_service)
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'return Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> 'return Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         'return Eliom_service.ocaml_service)
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  'return Eliom_service.ocaml_service)
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'return Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> 'return Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         'return Eliom_service.ocaml_service)
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'return Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> 'return Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         'return Eliom_service.ocaml_service)
        Eliom_service.service
      val send :
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        'return ->
        'return Eliom_registration.ocaml_content Eliom_registration.kind
        Lwt.t
    end
  module Any :
    sig
      type ('a, 'b) page = 'Eliom_registration.kind
      type options = unit
      type 'b return = 'b
      type 'a result = 'Eliom_registration.kind
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ], 'b)
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        'Eliom_registration.kind Lwt.t) ->
        ('get -> 'post -> 'Eliom_registration.kind Lwt.t) -> unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'c, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        'Eliom_registration.kind Lwt.t) ->
        ('get -> unit -> 'Eliom_registration.kind Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'c, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ], 'b)
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        'Eliom_registration.kind Lwt.t) ->
        ('get -> unit -> 'Eliom_registration.kind Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        'Eliom_registration.kind Lwt.t) ->
        ('get -> unit -> 'Eliom_registration.kind Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'c, 'gn, unit,
                  [< `Registrable ], 'b)
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        'Eliom_registration.kind Lwt.t) ->
        ('get -> 'post -> 'Eliom_registration.kind Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'c, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'c, 'gn, unit,
                  [< `Registrable ], 'b)
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        'Eliom_registration.kind Lwt.t) ->
        ('get -> 'post -> 'Eliom_registration.kind Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'c, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        'Eliom_registration.kind Lwt.t) ->
        (unit -> 'post -> 'Eliom_registration.kind Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'c, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        'Eliom_registration.kind Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data -> 'Eliom_registration.kind Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'c, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ], 'b)
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        'Eliom_registration.kind Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data -> 'Eliom_registration.kind Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        'Eliom_registration.kind Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data -> 'Eliom_registration.kind Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'c, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        'Eliom_registration.kind Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data -> 'Eliom_registration.kind Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'c, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ], 'b)
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        'Eliom_registration.kind Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data -> 'Eliom_registration.kind Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        'Eliom_registration.kind Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data -> 'Eliom_registration.kind Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ], 'b)
        Eliom_service.service
      val send :
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        'Eliom_registration.kind -> 'Eliom_registration.kind Lwt.t
    end
  val appl_self_redirect :
    ('page -> [< `Appl of '| `Browser ] Eliom_registration.kind Lwt.t) ->
    'page ->
    'appl Eliom_registration.application_content Eliom_registration.kind
    Lwt.t
  module String :
    sig
      type page = string * string
      type options = int
      type return = Eliom_registration.http_service
      type result =
          Eliom_registration.unknown_content Eliom_registration.kind
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                 [< Eliom_service.non_ocaml_service ])
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> 'post -> (string * string) Lwt.t) -> unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> unit -> (string * string) Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> unit -> (string * string) Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> unit -> (string * string) Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> 'post -> (string * string) Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> 'post -> (string * string) Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        (unit -> 'post -> (string * string) Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> (string * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> (string * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> (string * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> (string * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> (string * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('get -> Eliom_parameter.raw_post_data -> (string * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val send :
        ?options:int ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        string * string ->
        Eliom_registration.unknown_content Eliom_registration.kind Lwt.t
    end
  module Streamlist :
    sig
      type page = (unit -> string Ocsigen_stream.t Lwt.t) list * string
      type options = unit
      type return = Eliom_registration.http_service
      type result =
          Eliom_registration.unknown_content Eliom_registration.kind
      val register :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        service:('get, 'post, [< Eliom_service.service_method ],
                 [< Eliom_service.attached ],
                 [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                 [< Eliom_service.non_ocaml_service ])
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('get ->
         'post ->
         ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        unit
      val register_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('get ->
         unit ->
         ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `Service ], [ `WithoutSuffix ], unit, unit,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('get ->
         unit ->
         ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('get ->
         unit ->
         ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        ('get, unit, [< Eliom_service.service_method > `Get ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, unit,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                  [ `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('get ->
         'post ->
         ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                  [< `AttachedCoservice | `Service ],
                  [< Eliom_service.suff ] as 'a, 'gn, unit,
                  [< `Registrable ], [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('get ->
         'post ->
         ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        ('get, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_post_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?keep_get_na_params:bool ->
        ?https:bool ->
        post_params:('post, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        (unit ->
         'post ->
         ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        (unit, 'post, [< Eliom_service.service_method > `Post ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], unit, 'pn,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_put_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Put ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_service :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?priority:int ->
        path:Eliom_lib.Url.path ->
        get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `Service ], 'a, 'gn,
         Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                  Eliom_service.attached_kind, [ `Service ],
                  [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                  [< Eliom_service.registrable ],
                  [< Eliom_service.non_ocaml_service ])
                 Eliom_service.service ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Attached ],
         [< Eliom_service.service_kind > `AttachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val register_delete_coservice' :
        ?scope:[< Eliom_common.scope ] ->
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ?secure_session:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        ?https:bool ->
        get_params:('get, [ `WithoutSuffix ], 'gn)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('get ->
         Eliom_parameter.raw_post_data ->
         ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [< Eliom_service.service_method > `Delete ],
         [< Eliom_service.attached > `Nonattached ],
         [< Eliom_service.service_kind > `NonattachedCoservice ],
         [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
         [< Eliom_service.registrable > `Registrable ],
         [> Eliom_service.http_service ])
        Eliom_service.service
      val send :
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        (unit -> string Ocsigen_stream.t Lwt.t) list * string ->
        Eliom_registration.unknown_content Eliom_registration.kind Lwt.t
    end
  module Customize :
    functor
      (R : Registration) (T : sig
                                type page
                                val translate :
                                  Eliom_registration.Customize.page ->
                                  R.page Lwt.t
                              end->
      sig
        val register :
          ?scope:[< Eliom_common.scope ] ->
          ?options:R.options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          service:('get, 'post, [< Eliom_service.service_method ],
                   [< Eliom_service.attached ],
                   [< Eliom_service.internal_service_kind ],
                   [< Eliom_service.suff ], 'gn, 'pn, [ `Registrable ],
                   R.return)
                  Eliom_service.service ->
          ?error_handler:((string * exn) list -> T.page Lwt.t) ->
          ('get -> 'post -> T.page Lwt.t) -> unit
        val register_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:R.options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?priority:int ->
          path:Eliom_lib.Url.path ->
          get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> T.page Lwt.t) ->
          ('get -> unit -> T.page Lwt.t) ->
          ('get, unit, [< Eliom_service.service_method > `Get ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `Service ], 'a, 'gn, unit,
           [< Eliom_service.registrable > `Registrable ], R.return)
          Eliom_service.service
        val register_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:R.options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:(unit, unit, [ `Get ], Eliom_service.attached_kind,
                    [ `Service ], [ `WithoutSuffix ], unit, unit,
                    [< Eliom_service.registrable ], R.return)
                   Eliom_service.service ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> T.page Lwt.t) ->
          ('get -> unit -> T.page Lwt.t) ->
          ('get, unit, [< Eliom_service.service_method > `Get ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `AttachedCoservice ],
           [ `WithoutSuffix ], 'gn, unit,
           [< Eliom_service.registrable > `Registrable ], R.return)
          Eliom_service.service
        val register_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:R.options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> T.page Lwt.t) ->
          ('get -> unit -> T.page Lwt.t) ->
          ('get, unit, [< Eliom_service.service_method > `Get ],
           [< Eliom_service.attached > `Nonattached ],
           [< Eliom_service.service_kind > `NonattachedCoservice ],
           [ `WithoutSuffix ], 'gn, unit,
           [< Eliom_service.registrable > `Registrable ], R.return)
          Eliom_service.service
        val register_post_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:R.options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?priority:int ->
          fallback:('get, unit, [ `Get ], Eliom_service.attached_kind,
                    [ `AttachedCoservice | `Service ],
                    [< Eliom_service.suff ] as 'a, 'gn, unit,
                    [< `Registrable ], R.return)
                   Eliom_service.service ->
          post_params:('post, [ `WithoutSuffix ], 'pn)
                      Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> T.page Lwt.t) ->
          ('get -> 'post -> T.page Lwt.t) ->
          ('get, 'post, [< Eliom_service.service_method > `Post ],
           [< Eliom_service.attached > `Attached ],
           [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
           [< Eliom_service.registrable > `Registrable ], R.return)
          Eliom_service.service
        val register_post_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:R.options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:('get, unit, [< `Get ], [< Eliom_service.attached_kind ],
                    [< `AttachedCoservice | `Service ],
                    [< Eliom_service.suff ] as 'a, 'gn, unit,
                    [< `Registrable ], R.return)
                   Eliom_service.service ->
          post_params:('post, [ `WithoutSuffix ], 'pn)
                      Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> T.page Lwt.t) ->
          ('get -> 'post -> T.page Lwt.t) ->
          ('get, 'post, [< Eliom_service.service_method > `Post ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `AttachedCoservice ], 'a, 'gn,
           'pn, [< Eliom_service.registrable > `Registrable ], R.return)
          Eliom_service.service
        val register_post_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:R.options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?keep_get_na_params:bool ->
          ?https:bool ->
          post_params:('post, [ `WithoutSuffix ], 'pn)
                      Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> T.page Lwt.t) ->
          (unit -> 'post -> T.page Lwt.t) ->
          (unit, 'post, [< Eliom_service.service_method > `Post ],
           [< Eliom_service.attached > `Nonattached ],
           [< Eliom_service.service_kind > `NonattachedCoservice ],
           [ `WithoutSuffix ], unit, 'pn,
           [< Eliom_service.registrable > `Registrable ], R.return)
          Eliom_service.service
        val register_put_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:R.options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?priority:int ->
          path:Eliom_lib.Url.path ->
          get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> T.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> T.page Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Put ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `Service ], 'a, 'gn,
           Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ], R.return)
          Eliom_service.service
        val register_put_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:R.options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:(unit, Eliom_parameter.raw_post_data, [ `Put ],
                    Eliom_service.attached_kind, [ `Service ],
                    [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                    [< Eliom_service.registrable ], R.return)
                   Eliom_service.service ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> T.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> T.page Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Put ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `AttachedCoservice ],
           [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ], R.return)
          Eliom_service.service
        val register_put_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:R.options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> T.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> T.page Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Put ],
           [< Eliom_service.attached > `Nonattached ],
           [< Eliom_service.service_kind > `NonattachedCoservice ],
           [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ], R.return)
          Eliom_service.service
        val register_delete_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:R.options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?priority:int ->
          path:Eliom_lib.Url.path ->
          get_params:('get, [< Eliom_service.suff ] as 'a, 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> T.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> T.page Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Delete ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `Service ], 'a, 'gn,
           Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ], R.return)
          Eliom_service.service
        val register_delete_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:R.options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          fallback:(unit, Eliom_parameter.raw_post_data, [ `Delete ],
                    Eliom_service.attached_kind, [ `Service ],
                    [ `WithoutSuffix ], unit, Eliom_parameter.no_param_name,
                    [< Eliom_service.registrable ], R.return)
                   Eliom_service.service ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> T.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> T.page Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Delete ],
           [< Eliom_service.attached > `Attached ],
           [< Eliom_service.service_kind > `AttachedCoservice ],
           [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ], R.return)
          Eliom_service.service
        val register_delete_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:R.options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ?secure_session:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          ?https:bool ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> T.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> T.page Lwt.t) ->
          ('get, Eliom_parameter.raw_post_data,
           [< Eliom_service.service_method > `Delete ],
           [< Eliom_service.attached > `Nonattached ],
           [< Eliom_service.service_kind > `NonattachedCoservice ],
           [ `WithoutSuffix ], 'gn, Eliom_parameter.no_param_name,
           [< Eliom_service.registrable > `Registrable ], R.return)
          Eliom_service.service
        val send :
          ?options:R.options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t -> T.page -> R.result Lwt.t
      end
  val set_exn_handler :
    (exn -> Eliom_registration.browser_content Eliom_registration.kind Lwt.t) ->
    unit
  val cast_unknown_content_kind :
    Eliom_registration.unknown_content Eliom_registration.kind ->
    'Eliom_registration.kind
  val cast_http_result :
    Ocsigen_http_frame.result -> 'Eliom_registration.kind
end