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.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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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.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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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.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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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.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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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->
      functor (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.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,
             [> `Attached of
                  ([> `Internal of [> `Service ] ], [> `Get ])
                  Eliom_service.a_s ],
             '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,
                      [ `Attached of
                          ([ `Internal of [ `Service ] ], [ `Get ])
                          Eliom_service.a_s ],
                      [ `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,
             [> `Attached of
                  ([> `Internal of [> `Coservice ] ], [> `Get ])
                  Eliom_service.a_s ],
             [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
             [ `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,
                      [ `Attached of
                          ([ `Internal of [ `Coservice | `Service ] ],
                           [ `Get ])
                          Eliom_service.a_s ],
                      [< 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,
             [> `Attached of
                  ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
                  Eliom_service.a_s ],
             '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,
                      [ `Attached of
                          ([ `Internal of [< `Coservice | `Service ] ],
                           [ `Get ])
                          Eliom_service.a_s ],
                      [< 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,
             [> `Attached of
                  ([> `Internal of [> `Coservice ] ], [> `Post ])
                  Eliom_service.a_s ],
             '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
             [ `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,
             [> `Attached of
                  ([> `Internal of [> `Service ] ], [> `Put ])
                  Eliom_service.a_s ],
             '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,
                      [ `Attached of
                          ([ `Internal of [ `Service ] ], [ `Put ])
                          Eliom_service.a_s ],
                      [ `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,
             [> `Attached of
                  ([> `Internal of [> `Coservice ] ], [> `Put ])
                  Eliom_service.a_s ],
             [ `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,
             [> `Nonattached of [> `Put ] Eliom_service.na_s ],
             [ `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,
             [> `Attached of
                  ([> `Internal of [> `Service ] ], [> `Delete ])
                  Eliom_service.a_s ],
             '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,
                      [ `Attached of
                          ([ `Internal of [ `Service ] ], [ `Delete ])
                          Eliom_service.a_s ],
                      [ `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,
             [> `Attached of
                  ([> `Internal of [> `Coservice ] ], [> `Delete ])
                  Eliom_service.a_s ],
             [ `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,
             [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
             [ `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.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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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->
      functor
        (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->
        functor (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.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,
               [> `Attached of
                    ([> `Internal of [> `Service ] ], [> `Get ])
                    Eliom_service.a_s ],
               '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,
                        [ `Attached of
                            ([ `Internal of [ `Service ] ], [ `Get ])
                            Eliom_service.a_s ],
                        [ `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,
               [> `Attached of
                    ([> `Internal of [> `Coservice ] ], [> `Get ])
                    Eliom_service.a_s ],
               [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
               [ `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,
                        [ `Attached of
                            ([ `Internal of [ `Coservice | `Service ] ],
                             [ `Get ])
                            Eliom_service.a_s ],
                        [< 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,
               [> `Attached of
                    ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
                    Eliom_service.a_s ],
               '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,
                        [ `Attached of
                            ([ `Internal of [< `Coservice | `Service ] ],
                             [ `Get ])
                            Eliom_service.a_s ],
                        [< 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,
               [> `Attached of
                    ([> `Internal of [> `Coservice ] ], [> `Post ])
                    Eliom_service.a_s ],
               '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,
               [> `Nonattached of [> `Post ] Eliom_service.na_s ],
               [ `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,
               [> `Attached of
                    ([> `Internal of [> `Service ] ], [> `Put ])
                    Eliom_service.a_s ],
               '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,
                        [ `Attached of
                            ([ `Internal of [ `Service ] ], [ `Put ])
                            Eliom_service.a_s ],
                        [ `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,
               [> `Attached of
                    ([> `Internal of [> `Coservice ] ], [> `Put ])
                    Eliom_service.a_s ],
               [ `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,
               [> `Nonattached of [> `Put ] Eliom_service.na_s ],
               [ `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,
               [> `Attached of
                    ([> `Internal of [> `Service ] ], [> `Delete ])
                    Eliom_service.a_s ],
               '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,
                        [ `Attached of
                            ([ `Internal of [ `Service ] ], [ `Delete ])
                            Eliom_service.a_s ],
                        [ `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,
               [> `Attached of
                    ([> `Internal of [> `Coservice ] ], [> `Delete ])
                    Eliom_service.a_s ],
               [ `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,
               [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
               [ `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.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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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.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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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.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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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.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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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, [ `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.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,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         'post ->
         (unit, unit, Eliom_service.get_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,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         unit ->
         (unit, unit, Eliom_service.get_service_kind, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         unit ->
         (unit, unit, Eliom_service.get_service_kind, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         unit ->
         (unit, unit, Eliom_service.get_service_kind, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         'post ->
         (unit, unit, Eliom_service.get_service_kind, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, 'post,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        ('get ->
         'post ->
         (unit, unit, Eliom_service.get_service_kind, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, 'post,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'b)
                        Eliom_service.service Lwt.t) ->
        (unit ->
         'post ->
         (unit, unit, Eliom_service.get_service_kind, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        (unit, 'post, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
                         [ `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, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
                         [ `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, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
                         [ `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, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
                         [ `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, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
                         [ `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, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
                         [ `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, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'b)
         Eliom_service.service Lwt.t) ->
        ('get, Eliom_parameter.raw_post_data,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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, [ `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.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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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.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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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.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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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.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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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.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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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.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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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.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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `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,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< 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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Put ]) Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Put ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Put ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Put ] Eliom_service.na_s ],
         [ `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,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Delete ])
              Eliom_service.a_s ],
         '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,
                  [ `Attached of
                      ([ `Internal of [ `Service ] ], [ `Delete ])
                      Eliom_service.a_s ],
                  [ `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,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Delete ])
              Eliom_service.a_s ],
         [ `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,
         [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
         [ `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->
      functor
        (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.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,
             [> `Attached of
                  ([> `Internal of [> `Service ] ], [> `Get ])
                  Eliom_service.a_s ],
             '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,
                      [ `Attached of
                          ([ `Internal of [ `Service ] ], [ `Get ])
                          Eliom_service.a_s ],
                      [ `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,
             [> `Attached of
                  ([> `Internal of [> `Coservice ] ], [> `Get ])
                  Eliom_service.a_s ],
             [ `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, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
             [ `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,
                      [ `Attached of
                          ([ `Internal of [ `Coservice | `Service ] ],
                           [ `Get ])
                          Eliom_service.a_s ],
                      [< 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,
             [> `Attached of
                  ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
                  Eliom_service.a_s ],
             '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,
                      [ `Attached of
                          ([ `Internal of [< `Coservice | `Service ] ],
                           [ `Get ])
                          Eliom_service.a_s ],
                      [< 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,
             [> `Attached of
                  ([> `Internal of [> `Coservice ] ], [> `Post ])
                  Eliom_service.a_s ],
             '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, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
             [ `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,
             [> `Attached of
                  ([> `Internal of [> `Service ] ], [> `Put ])
                  Eliom_service.a_s ],
             '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,
                      [ `Attached of
                          ([ `Internal of [ `Service ] ], [ `Put ])
                          Eliom_service.a_s ],
                      [ `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,
             [> `Attached of
                  ([> `Internal of [> `Coservice ] ], [> `Put ])
                  Eliom_service.a_s ],
             [ `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,
             [> `Nonattached of [> `Put ] Eliom_service.na_s ],
             [ `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,
             [> `Attached of
                  ([> `Internal of [> `Service ] ], [> `Delete ])
                  Eliom_service.a_s ],
             '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,
                      [ `Attached of
                          ([ `Internal of [ `Service ] ], [ `Delete ])
                          Eliom_service.a_s ],
                      [ `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,
             [> `Attached of
                  ([> `Internal of [> `Coservice ] ], [> `Delete ])
                  Eliom_service.a_s ],
             [ `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,
             [> `Nonattached of [> `Delete ] Eliom_service.na_s ],
             [ `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