sig
  module type REG_PARAM =
    sig
      type page
      type options
      type return
      type result
      val send :
        ?options:Eliom_mkreg.REG_PARAM.options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        Eliom_mkreg.REG_PARAM.page -> Ocsigen_http_frame.result Lwt.t
      val send_appl_content : Eliom_service.send_appl_content
      val result_of_http_result :
        Ocsigen_http_frame.result -> Eliom_mkreg.REG_PARAM.result
    end
  module MakeRegister :
    functor (Pages : REG_PARAM->
      sig
        type page = Pages.page
        type options = Pages.options
        type return = Pages.return
        type result = Pages.result
        val register :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 ],
                   'returnT)
                  Eliom_service.service ->
          ?error_handler:((string * exn) list -> Pages.page Lwt.t) ->
          ('get -> 'post -> Pages.page Lwt.t) -> unit
        val register_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 -> Pages.page Lwt.t) ->
          ('get -> unit -> Pages.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 ], 'returnB)
          Eliom_service.service
        val register_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 ], 'returnT)
                   Eliom_service.service ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Pages.page Lwt.t) ->
          ('get -> unit -> Pages.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 ], 'returnB)
          Eliom_service.service
        val register_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 -> Pages.page Lwt.t) ->
          ('get -> unit -> Pages.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 ], 'returnB)
          Eliom_service.service
        val register_post_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 ], 'returnT)
                   Eliom_service.service ->
          post_params:('post, [ `WithoutSuffix ], 'pn)
                      Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Pages.page Lwt.t) ->
          ('get -> 'post -> Pages.page Lwt.t) ->
          ('get, 'post, [< Eliom_service.service_method > `Post ],
           [< Eliom_service.attached > `Attached ],
           [ `AttachedCoservice | `Service ], 'a, 'gn, 'pn,
           [< Eliom_service.registrable > `Registrable ], 'returnB)
          Eliom_service.service
        val register_post_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 ], 'returnT)
                   Eliom_service.service ->
          post_params:('post, [ `WithoutSuffix ], 'pn)
                      Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Pages.page Lwt.t) ->
          ('get -> 'post -> Pages.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 ], 'returnB)
          Eliom_service.service
        val register_post_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 -> Pages.page Lwt.t) ->
          (unit -> 'post -> Pages.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 ], 'returnB)
          Eliom_service.service
        val register_put_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 -> Pages.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> Pages.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 ], 'returnB)
          Eliom_service.service
        val register_put_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 ], 'returnT)
                   Eliom_service.service ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Pages.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> Pages.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 ], 'returnB)
          Eliom_service.service
        val register_put_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 -> Pages.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> Pages.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 ], 'returnB)
          Eliom_service.service
        val register_delete_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 -> Pages.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> Pages.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 ], 'returnB)
          Eliom_service.service
        val register_delete_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 ], 'returnT)
                   Eliom_service.service ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> Pages.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> Pages.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 ], 'returnB)
          Eliom_service.service
        val register_delete_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 -> Pages.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> Pages.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 ], 'returnB)
          Eliom_service.service
        val send :
          ?options:Pages.options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t -> Pages.page -> Pages.result Lwt.t
      end
  module type REG_PARAM_ALPHA_RETURN =
    sig
      type ('a, 'b) page
      type 'a return
      type 'a result
      type options
      val send :
        ?options:Eliom_mkreg.REG_PARAM_ALPHA_RETURN.options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ('a, 'b) Eliom_mkreg.REG_PARAM_ALPHA_RETURN.page ->
        Ocsigen_http_frame.result Lwt.t
      val send_appl_content : Eliom_service.send_appl_content
      val result_of_http_result :
        Ocsigen_http_frame.result ->
        'Eliom_mkreg.REG_PARAM_ALPHA_RETURN.result
    end
  module MakeRegister_AlphaReturn :
    functor (Pages : REG_PARAM_ALPHA_RETURN->
      sig
        type ('a, 'b) page = ('a, 'b) Pages.page
        type options = Pages.options
        type 'b return = 'Pages.return
        type 'a result = 'Pages.result
        val register :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 ],
                   'returnT)
                  Eliom_service.service ->
          ?error_handler:((string * exn) list -> ('a, 'b) Pages.page Lwt.t) ->
          ('get -> 'post -> ('a, 'b) Pages.page Lwt.t) -> unit
        val register_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 'c, 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> ('a, 'b) Pages.page Lwt.t) ->
          ('get -> unit -> ('a, 'b) Pages.page 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 ], 'returnB)
          Eliom_service.service
        val register_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 ], 'returnT)
                   Eliom_service.service ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> ('a, 'b) Pages.page Lwt.t) ->
          ('get -> unit -> ('a, 'b) Pages.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 ], 'returnB)
          Eliom_service.service
        val register_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 -> ('a, 'b) Pages.page Lwt.t) ->
          ('get -> unit -> ('a, 'b) Pages.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 ], 'returnB)
          Eliom_service.service
        val register_post_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 'c, 'gn, unit,
                    [< `Registrable ], 'returnT)
                   Eliom_service.service ->
          post_params:('post, [ `WithoutSuffix ], 'pn)
                      Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> ('a, 'b) Pages.page Lwt.t) ->
          ('get -> 'post -> ('a, 'b) Pages.page Lwt.t) ->
          ('get, 'post, [< Eliom_service.service_method > `Post ],
           [< Eliom_service.attached > `Attached ],
           [ `AttachedCoservice | `Service ], 'c, 'gn, 'pn,
           [< Eliom_service.registrable > `Registrable ], 'returnB)
          Eliom_service.service
        val register_post_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 'c, 'gn, unit,
                    [< `Registrable ], 'returnT)
                   Eliom_service.service ->
          post_params:('post, [ `WithoutSuffix ], 'pn)
                      Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> ('a, 'b) Pages.page Lwt.t) ->
          ('get -> 'post -> ('a, 'b) Pages.page 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 ], 'returnB)
          Eliom_service.service
        val register_post_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 -> ('a, 'b) Pages.page Lwt.t) ->
          (unit -> 'post -> ('a, 'b) Pages.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 ], 'returnB)
          Eliom_service.service
        val register_put_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 'c, 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> ('a, 'b) Pages.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> ('a, 'b) Pages.page 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 ], 'returnB)
          Eliom_service.service
        val register_put_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 ], 'returnT)
                   Eliom_service.service ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> ('a, 'b) Pages.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> ('a, 'b) Pages.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 ], 'returnB)
          Eliom_service.service
        val register_put_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 -> ('a, 'b) Pages.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> ('a, 'b) Pages.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 ], 'returnB)
          Eliom_service.service
        val register_delete_service :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 'c, 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> ('a, 'b) Pages.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> ('a, 'b) Pages.page 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 ], 'returnB)
          Eliom_service.service
        val register_delete_coservice :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 ], 'returnT)
                   Eliom_service.service ->
          get_params:('get, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> ('a, 'b) Pages.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> ('a, 'b) Pages.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 ], 'returnB)
          Eliom_service.service
        val register_delete_coservice' :
          ?scope:[< Eliom_common.scope ] ->
          ?options:Pages.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 -> ('a, 'b) Pages.page Lwt.t) ->
          ('get -> Eliom_parameter.raw_post_data -> ('a, 'b) Pages.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 ], 'returnB)
          Eliom_service.service
        val send :
          ?options:Pages.options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Http_headers.t ->
          ('a, 'b) Pages.page -> 'Pages.result Lwt.t
      end
  val suffix_redir_uri_key : string Polytables.key
end