sig
  type ('a, 'b) kind
  type http_service = [ `Http ]
  type browser_content = [ `Browser ]
  type block_content
  type unknown_content
  type appl_service = [ `Appl ]
  type 'a application_content = [ `Appl of 'a ]
  type 'a application_name
  type 'a caml_content
  type non_caml_service = [ `Appl | `Http ]
  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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.Registration.return)
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('-> '-> 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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('-> unit -> Eliom_registration.Registration.page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, 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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('-> unit -> Eliom_registration.Registration.page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, 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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('-> unit -> Eliom_registration.Registration.page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, 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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('-> '-> Eliom_registration.Registration.page Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< 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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.Registration.return)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        ('-> '-> Eliom_registration.Registration.page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< 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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Eliom_registration.Registration.page Lwt.t) ->
        (unit -> '-> Eliom_registration.Registration.page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< 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_core.Html5.elt
      type options = unit
      type return = Eliom_registration.http_service
      type result =
          (Eliom_registration.browser_content,
           Eliom_registration.http_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.http_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('-> '-> Html5_types.html Eliom_content_core.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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('-> unit -> Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.http_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('-> unit -> Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('-> unit -> Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('-> '-> Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.http_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('-> '-> Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        (unit -> '-> Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_core.Html5.elt ->
        (Eliom_registration.browser_content, Eliom_registration.http_service)
        Eliom_registration.kind Lwt.t
    end
  module Html5 :
    sig
      type page = Html5_types.html Eliom_content_core.Html5.elt
      type options = unit
      type return = Eliom_registration.http_service
      type result =
          (Eliom_registration.browser_content,
           Eliom_registration.http_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.http_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('-> '-> Html5_types.html Eliom_content_core.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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('-> unit -> Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.http_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('-> unit -> Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('-> unit -> Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('-> '-> Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.http_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('-> '-> Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        (unit -> '-> Html5_types.html Eliom_content_core.Html5.elt Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_core.Html5.elt ->
        (Eliom_registration.browser_content, Eliom_registration.http_service)
        Eliom_registration.kind Lwt.t
    end
  module Xhtml :
    sig
      type page = Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt
      type options = unit
      type return = Eliom_registration.http_service
      type result =
          (Eliom_registration.browser_content,
           Eliom_registration.http_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.http_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt
                        Lwt.t) ->
        ('-> '-> Xhtml_types.xhtml Eliom_content_core.Xhtml.F.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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt
                        Lwt.t) ->
        ('-> unit -> Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.http_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt
                        Lwt.t) ->
        ('-> unit -> Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt
                        Lwt.t) ->
        ('-> unit -> Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt
                        Lwt.t) ->
        ('-> '-> Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.http_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt
                        Lwt.t) ->
        ('-> '-> Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt
                        Lwt.t) ->
        (unit -> '-> Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.http_service)
        Eliom_service.service
      val send :
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt ->
        (Eliom_registration.browser_content, Eliom_registration.http_service)
        Eliom_registration.kind Lwt.t
    end
  module Xhtml_registration :
    sig
      type page = Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt
      type options = unit
      type return = Eliom_registration.http_service
      type result =
          (Eliom_registration.browser_content,
           Eliom_registration.http_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.http_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt
                        Lwt.t) ->
        ('-> '-> Xhtml_types.xhtml Eliom_content_core.Xhtml.F.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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt
                        Lwt.t) ->
        ('-> unit -> Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.http_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt
                        Lwt.t) ->
        ('-> unit -> Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt
                        Lwt.t) ->
        ('-> unit -> Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt
                        Lwt.t) ->
        ('-> '-> Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.http_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt
                        Lwt.t) ->
        ('-> '-> Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt
                        Lwt.t) ->
        (unit -> '-> Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.http_service)
        Eliom_service.service
      val send :
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        Xhtml_types.xhtml Eliom_content_core.Xhtml.F.elt ->
        (Eliom_registration.browser_content, Eliom_registration.http_service)
        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_core.Html5.elt
      val application_name : string
      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.appl_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.appl_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('-> '-> 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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('-> unit -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.appl_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('-> unit -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('-> unit -> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('-> '-> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.appl_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('-> '-> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        (unit -> '-> Html5_types.html Eliom_content.Html5.elt Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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.appl_service)
        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_core.Html5.elt Lwt.t
      val update :
        Eliom_registration.TMPL_PARAMS.t ->
        Dom_html.event Eliom_content_core.Xml.caml_event_handler
    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.appl_service)
              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:('a, 'b, [< Eliom_service.internal_service_kind ],
                     [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                     Eliom_registration.appl_service)
                    Eliom_service.service ->
            ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
            ('-> '-> 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:('a, [< Eliom_service.suff ] as 'b, 'c)
                       Eliom_parameter.params_type ->
            ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
            ('-> unit -> Tmpl_param.t Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  ([> `Internal of [> `Service ] ], [> `Get ])
                  Eliom_service.a_s ],
             'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
             Eliom_registration.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_registration.appl_service)
                     Eliom_service.service ->
            get_params:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameter.params_type ->
            ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
            ('-> unit -> Tmpl_param.t Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  ([> `Internal of [> `Coservice ] ], [> `Get ])
                  Eliom_service.a_s ],
             [ `WithoutSuffix ], 'b, unit,
             [< Eliom_service.registrable > `Registrable ],
             Eliom_registration.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:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameter.params_type ->
            ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
            ('-> unit -> Tmpl_param.t Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
             [ `WithoutSuffix ], 'b, unit,
             [< Eliom_service.registrable > `Registrable ],
             Eliom_registration.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:('a, unit,
                      [ `Attached of
                          ([ `Internal of [ `Coservice | `Service ] ],
                           [ `Get ])
                          Eliom_service.a_s ],
                      [< Eliom_service.suff ] as 'b, 'c, unit,
                      [< `Registrable ], 'd)
                     Eliom_service.service ->
            post_params:('e, [ `WithoutSuffix ], 'f)
                        Eliom_parameter.params_type ->
            ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
            ('-> '-> Tmpl_param.t Lwt.t) ->
            ('a, 'e,
             [> `Attached of
                  ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
                  Eliom_service.a_s ],
             'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
             Eliom_registration.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:('a, unit,
                      [ `Attached of
                          ([ `Internal of [< `Coservice | `Service ] ],
                           [ `Get ])
                          Eliom_service.a_s ],
                      [< Eliom_service.suff ] as 'b, 'c, unit,
                      [< `Registrable ], Eliom_registration.appl_service)
                     Eliom_service.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameter.params_type ->
            ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
            ('-> '-> Tmpl_param.t Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  ([> `Internal of [> `Coservice ] ], [> `Post ])
                  Eliom_service.a_s ],
             'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
             Eliom_registration.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:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameter.params_type ->
            ?error_handler:((string * exn) list -> Tmpl_param.t Lwt.t) ->
            (unit -> '-> Tmpl_param.t Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
             [ `WithoutSuffix ], unit, 'b,
             [< Eliom_service.registrable > `Registrable ],
             Eliom_registration.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.appl_service)
            Eliom_registration.kind Lwt.t
        end
  module Flow5 :
    sig
      type page = Html5_types.flow5 Eliom_content_core.Html5.elt list
      type options = unit
      type return = Eliom_registration.http_service
      type result =
          (Eliom_registration.block_content, Eliom_registration.http_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.http_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content_core.Html5.elt list
                        Lwt.t) ->
        ('->
         '-> Html5_types.flow5 Eliom_content_core.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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content_core.Html5.elt list
                        Lwt.t) ->
        ('->
         unit -> Html5_types.flow5 Eliom_content_core.Html5.elt list Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.http_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content_core.Html5.elt list
                        Lwt.t) ->
        ('->
         unit -> Html5_types.flow5 Eliom_content_core.Html5.elt list Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content_core.Html5.elt list
                        Lwt.t) ->
        ('->
         unit -> Html5_types.flow5 Eliom_content_core.Html5.elt list Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content_core.Html5.elt list
                        Lwt.t) ->
        ('->
         '-> Html5_types.flow5 Eliom_content_core.Html5.elt list Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.http_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content_core.Html5.elt list
                        Lwt.t) ->
        ('->
         '-> Html5_types.flow5 Eliom_content_core.Html5.elt list Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content_core.Html5.elt list
                        Lwt.t) ->
        (unit ->
         '-> Html5_types.flow5 Eliom_content_core.Html5.elt list Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_core.Html5.elt list ->
        (Eliom_registration.block_content, Eliom_registration.http_service)
        Eliom_registration.kind Lwt.t
    end
  module Block5 :
    sig
      type page = Html5_types.flow5 Eliom_content_core.Html5.elt list
      type options = unit
      type return = Eliom_registration.http_service
      type result =
          (Eliom_registration.block_content, Eliom_registration.http_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.http_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content_core.Html5.elt list
                        Lwt.t) ->
        ('->
         '-> Html5_types.flow5 Eliom_content_core.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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content_core.Html5.elt list
                        Lwt.t) ->
        ('->
         unit -> Html5_types.flow5 Eliom_content_core.Html5.elt list Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.http_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content_core.Html5.elt list
                        Lwt.t) ->
        ('->
         unit -> Html5_types.flow5 Eliom_content_core.Html5.elt list Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content_core.Html5.elt list
                        Lwt.t) ->
        ('->
         unit -> Html5_types.flow5 Eliom_content_core.Html5.elt list Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content_core.Html5.elt list
                        Lwt.t) ->
        ('->
         '-> Html5_types.flow5 Eliom_content_core.Html5.elt list Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.http_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content_core.Html5.elt list
                        Lwt.t) ->
        ('->
         '-> Html5_types.flow5 Eliom_content_core.Html5.elt list Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Html5_types.flow5 Eliom_content_core.Html5.elt list
                        Lwt.t) ->
        (unit ->
         '-> Html5_types.flow5 Eliom_content_core.Html5.elt list Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_core.Html5.elt list ->
        (Eliom_registration.block_content, Eliom_registration.http_service)
        Eliom_registration.kind Lwt.t
    end
  module Block :
    sig
      type page =
          Xhtml_types.body_content Eliom_content_core.Xhtml.F.elt list
      type options = unit
      type return = Eliom_registration.http_service
      type result =
          (Eliom_registration.block_content, Eliom_registration.http_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.http_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.body_content
                        Eliom_content_core.Xhtml.F.elt list Lwt.t) ->
        ('->
         '->
         Xhtml_types.body_content Eliom_content_core.Xhtml.F.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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.body_content
                        Eliom_content_core.Xhtml.F.elt list Lwt.t) ->
        ('->
         unit ->
         Xhtml_types.body_content Eliom_content_core.Xhtml.F.elt list Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.http_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.body_content
                        Eliom_content_core.Xhtml.F.elt list Lwt.t) ->
        ('->
         unit ->
         Xhtml_types.body_content Eliom_content_core.Xhtml.F.elt list Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.body_content
                        Eliom_content_core.Xhtml.F.elt list Lwt.t) ->
        ('->
         unit ->
         Xhtml_types.body_content Eliom_content_core.Xhtml.F.elt list Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.body_content
                        Eliom_content_core.Xhtml.F.elt list Lwt.t) ->
        ('->
         '->
         Xhtml_types.body_content Eliom_content_core.Xhtml.F.elt list Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.http_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.body_content
                        Eliom_content_core.Xhtml.F.elt list Lwt.t) ->
        ('->
         '->
         Xhtml_types.body_content Eliom_content_core.Xhtml.F.elt list Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        Xhtml_types.body_content
                        Eliom_content_core.Xhtml.F.elt list Lwt.t) ->
        (unit ->
         '->
         Xhtml_types.body_content Eliom_content_core.Xhtml.F.elt list Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.http_service)
        Eliom_service.service
      val send :
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        Xhtml_types.body_content Eliom_content_core.Xhtml.F.elt list ->
        (Eliom_registration.block_content, Eliom_registration.http_service)
        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.http_service)
                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:('a, 'b, [< Eliom_service.internal_service_kind ],
                       [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                       Eliom_registration.http_service)
                      Eliom_service.service ->
              ?error_handler:((string * exn) list ->
                              E.content Typed_xml.elt list Lwt.t) ->
              ('-> '-> 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:('a, [< Eliom_service.suff ] as 'b, 'c)
                         Eliom_parameter.params_type ->
              ?error_handler:((string * exn) list ->
                              E.content Typed_xml.elt list Lwt.t) ->
              ('-> unit -> E.content Typed_xml.elt list Lwt.t) ->
              ('a, unit,
               [> `Attached of
                    ([> `Internal of [> `Service ] ], [> `Get ])
                    Eliom_service.a_s ],
               'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
               Eliom_registration.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_registration.http_service)
                       Eliom_service.service ->
              get_params:('a, [ `WithoutSuffix ], 'b)
                         Eliom_parameter.params_type ->
              ?error_handler:((string * exn) list ->
                              E.content Typed_xml.elt list Lwt.t) ->
              ('-> unit -> E.content Typed_xml.elt list Lwt.t) ->
              ('a, unit,
               [> `Attached of
                    ([> `Internal of [> `Coservice ] ], [> `Get ])
                    Eliom_service.a_s ],
               [ `WithoutSuffix ], 'b, unit,
               [< Eliom_service.registrable > `Registrable ],
               Eliom_registration.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:('a, [ `WithoutSuffix ], 'b)
                         Eliom_parameter.params_type ->
              ?error_handler:((string * exn) list ->
                              E.content Typed_xml.elt list Lwt.t) ->
              ('-> unit -> E.content Typed_xml.elt list Lwt.t) ->
              ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
               [ `WithoutSuffix ], 'b, unit,
               [< Eliom_service.registrable > `Registrable ],
               Eliom_registration.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:('a, unit,
                        [ `Attached of
                            ([ `Internal of [ `Coservice | `Service ] ],
                             [ `Get ])
                            Eliom_service.a_s ],
                        [< Eliom_service.suff ] as 'b, 'c, unit,
                        [< `Registrable ], 'd)
                       Eliom_service.service ->
              post_params:('e, [ `WithoutSuffix ], 'f)
                          Eliom_parameter.params_type ->
              ?error_handler:((string * exn) list ->
                              E.content Typed_xml.elt list Lwt.t) ->
              ('-> '-> E.content Typed_xml.elt list Lwt.t) ->
              ('a, 'e,
               [> `Attached of
                    ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
                    Eliom_service.a_s ],
               'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
               Eliom_registration.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:('a, unit,
                        [ `Attached of
                            ([ `Internal of [< `Coservice | `Service ] ],
                             [ `Get ])
                            Eliom_service.a_s ],
                        [< Eliom_service.suff ] as 'b, 'c, unit,
                        [< `Registrable ], Eliom_registration.http_service)
                       Eliom_service.service ->
              post_params:('d, [ `WithoutSuffix ], 'e)
                          Eliom_parameter.params_type ->
              ?error_handler:((string * exn) list ->
                              E.content Typed_xml.elt list Lwt.t) ->
              ('-> '-> E.content Typed_xml.elt list Lwt.t) ->
              ('a, 'd,
               [> `Attached of
                    ([> `Internal of [> `Coservice ] ], [> `Post ])
                    Eliom_service.a_s ],
               'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
               Eliom_registration.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:('a, [ `WithoutSuffix ], 'b)
                          Eliom_parameter.params_type ->
              ?error_handler:((string * exn) list ->
                              E.content Typed_xml.elt list Lwt.t) ->
              (unit -> '-> E.content Typed_xml.elt list Lwt.t) ->
              (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
               [ `WithoutSuffix ], unit, 'b,
               [< Eliom_service.registrable > `Registrable ],
               Eliom_registration.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.http_service)
              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.http_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.http_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> '-> 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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> unit -> string Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.http_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> unit -> string Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> unit -> string Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> '-> string Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.http_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> '-> string Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        (unit -> '-> string Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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.http_service)
        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.http_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.http_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> '-> 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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> unit -> string Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.http_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> unit -> string Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> unit -> string Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> '-> string Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.http_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> '-> string Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        (unit -> '-> string Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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.http_service)
        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.http_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.http_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('-> '-> 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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('-> unit -> unit Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.http_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('-> unit -> unit Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('-> unit -> unit Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('-> '-> unit Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.http_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('-> '-> unit Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        (unit -> '-> unit Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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.http_service)
        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.http_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.http_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('-> '-> 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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('-> unit -> unit Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.http_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('-> unit -> unit Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('-> unit -> unit Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('-> '-> unit Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.http_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        ('-> '-> unit Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> unit Lwt.t) ->
        (unit -> '-> unit Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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.http_service)
        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 'a return = 'a
      type ('a, 'b) result = ('a, 'b) 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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ], 'e)
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'e)
                        Eliom_service.service Lwt.t) ->
        ('->
         '->
         (unit, unit, Eliom_service.get_service_kind, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'e)
         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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'd)
                        Eliom_service.service Lwt.t) ->
        ('->
         unit ->
         (unit, unit, Eliom_service.get_service_kind, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'd)
         Eliom_service.service Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ], 'd)
        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 ], 'a)
                 Eliom_service.service ->
        get_params:('b, [ `WithoutSuffix ], 'c) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'a)
                        Eliom_service.service Lwt.t) ->
        ('->
         unit ->
         (unit, unit, Eliom_service.get_service_kind, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'a)
         Eliom_service.service Lwt.t) ->
        ('b, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'c, unit,
         [< Eliom_service.registrable > `Registrable ], 'a)
        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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'c)
                        Eliom_service.service Lwt.t) ->
        ('->
         unit ->
         (unit, unit, Eliom_service.get_service_kind, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'c)
         Eliom_service.service Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ], 'c)
        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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'g)
                        Eliom_service.service Lwt.t) ->
        ('->
         '->
         (unit, unit, Eliom_service.get_service_kind, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'g)
         Eliom_service.service Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ], 'g)
        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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'd)
                        Eliom_service.service Lwt.t) ->
        ('->
         '->
         (unit, unit, Eliom_service.get_service_kind, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'd)
         Eliom_service.service Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ], 'd)
        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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        (unit, unit, Eliom_service.get_service_kind,
                         [ `WithoutSuffix ], unit, unit,
                         Eliom_service.registrable, 'c)
                        Eliom_service.service Lwt.t) ->
        (unit ->
         '->
         (unit, unit, Eliom_service.get_service_kind, [ `WithoutSuffix ],
          unit, unit, Eliom_service.registrable, 'c)
         Eliom_service.service Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ], 'c)
        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, 'a)
        Eliom_service.service -> ('b, 'a) 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.http_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.http_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('-> '-> 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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('-> unit -> Eliom_lib.Url.uri Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.http_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('-> unit -> Eliom_lib.Url.uri Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('-> unit -> Eliom_lib.Url.uri Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('-> '-> Eliom_lib.Url.uri Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.http_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        ('-> '-> Eliom_lib.Url.uri Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> Eliom_lib.Url.uri Lwt.t) ->
        (unit -> '-> Eliom_lib.Url.uri Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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.http_service)
        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.http_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.http_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> '-> 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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> unit -> string Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.http_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> unit -> string Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> unit -> string Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> '-> string Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.http_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        ('-> '-> string Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> string Lwt.t) ->
        (unit -> '-> string Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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.http_service)
        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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 'Eliom_parameter.caml)
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> 'Lwt.t) ->
        ('-> '-> '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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'Lwt.t) ->
        ('-> unit -> 'Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         'Eliom_parameter.caml)
        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_parameter.caml)
                 Eliom_service.service ->
        get_params:('b, [ `WithoutSuffix ], 'c) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'Lwt.t) ->
        ('-> unit -> 'Lwt.t) ->
        ('b, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'c, unit,
         [< Eliom_service.registrable > `Registrable ],
         'Eliom_parameter.caml)
        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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'Lwt.t) ->
        ('-> unit -> 'Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         'Eliom_parameter.caml)
        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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'Lwt.t) ->
        ('-> '-> 'Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         'Eliom_parameter.caml)
        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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'Eliom_parameter.caml)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'Lwt.t) ->
        ('-> '-> 'Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         'Eliom_parameter.caml)
        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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'Lwt.t) ->
        (unit -> '-> 'Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         'Eliom_parameter.caml)
        Eliom_service.service
      val send :
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        '->
        ('Eliom_registration.caml_content, 'Eliom_parameter.caml)
        Eliom_registration.kind Lwt.t
    end
  module Any :
    sig
      type ('a, 'b) page = ('a, 'b) Eliom_registration.kind
      type options = unit
      type 'a return = 'a
      type ('a, 'b) result = ('a, 'b) 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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ], 'e)
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        ('f, 'e) Eliom_registration.kind Lwt.t) ->
        ('-> '-> ('f, 'e) 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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ('d, 'e) Eliom_registration.kind Lwt.t) ->
        ('-> unit -> ('d, 'e) Eliom_registration.kind Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ], 'e)
        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 ], 'a)
                 Eliom_service.service ->
        get_params:('b, [ `WithoutSuffix ], 'c) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ('d, 'a) Eliom_registration.kind Lwt.t) ->
        ('-> unit -> ('d, 'a) Eliom_registration.kind Lwt.t) ->
        ('b, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'c, unit,
         [< Eliom_service.registrable > `Registrable ], 'a)
        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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ('c, 'd) Eliom_registration.kind Lwt.t) ->
        ('-> unit -> ('c, 'd) Eliom_registration.kind Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ], 'd)
        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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ('g, 'h) Eliom_registration.kind Lwt.t) ->
        ('-> '-> ('g, 'h) Eliom_registration.kind Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ], 'h)
        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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ('g, 'd) Eliom_registration.kind Lwt.t) ->
        ('-> '-> ('g, 'd) Eliom_registration.kind Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ], 'd)
        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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ('c, 'd) Eliom_registration.kind Lwt.t) ->
        (unit -> '-> ('c, 'd) Eliom_registration.kind Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ], 'd)
        Eliom_service.service
      val send :
        ?options:unit ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Http_headers.t ->
        ('a, 'b) Eliom_registration.kind ->
        ('a, 'b) Eliom_registration.kind Lwt.t
    end
  val appl_self_redirect :
    ('->
     ([< `Appl of '| `Browser ], [< Eliom_registration.non_caml_service ])
     Eliom_registration.kind Lwt.t) ->
    '->
    ('Eliom_registration.application_content,
     Eliom_registration.appl_service)
    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.http_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.http_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('-> '-> (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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('-> unit -> (string * string) Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.http_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('-> unit -> (string * string) Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('-> unit -> (string * string) Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('-> '-> (string * string) Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.http_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('-> '-> (string * string) Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        (unit -> '-> (string * string) Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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.http_service)
        Eliom_registration.kind Lwt.t
    end
  module Text :
    sig
      type page = string * string
      type options = int
      type return = Eliom_registration.http_service
      type result =
          (Eliom_registration.unknown_content,
           Eliom_registration.http_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.http_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('-> '-> (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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('-> unit -> (string * string) Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.http_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('-> unit -> (string * string) Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('-> unit -> (string * string) Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('-> '-> (string * string) Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.http_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        ('-> '-> (string * string) Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> (string * string) Lwt.t) ->
        (unit -> '-> (string * string) Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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.http_service)
        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.http_service)
          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:('a, 'b, [< Eliom_service.internal_service_kind ],
                 [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                 Eliom_registration.http_service)
                Eliom_service.service ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('->
         '-> ((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:('a, [< Eliom_service.suff ] as 'b, 'c)
                   Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('->
         unit ->
         ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Service ] ], [> `Get ]) Eliom_service.a_s ],
         'b, 'c, unit, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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_registration.http_service)
                 Eliom_service.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('->
         unit ->
         ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        ('a, unit,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Get ])
              Eliom_service.a_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('->
         unit ->
         ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
         [ `WithoutSuffix ], 'b, unit,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [ `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  'd)
                 Eliom_service.service ->
        post_params:('e, [ `WithoutSuffix ], 'f) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('->
         '-> ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        ('a, 'e,
         [> `Attached of
              ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'f, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, unit,
                  [ `Attached of
                      ([ `Internal of [< `Coservice | `Service ] ], [ `Get ])
                      Eliom_service.a_s ],
                  [< Eliom_service.suff ] as 'b, 'c, unit, [< `Registrable ],
                  Eliom_registration.http_service)
                 Eliom_service.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        ('->
         '-> ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              ([> `Internal of [> `Coservice ] ], [> `Post ])
              Eliom_service.a_s ],
         'b, 'c, 'e, [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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:('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list ->
                        ((unit -> string Ocsigen_stream.t Lwt.t) list *
                         string)
                        Lwt.t) ->
        (unit ->
         '-> ((unit -> string Ocsigen_stream.t Lwt.t) list * string) Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
         [ `WithoutSuffix ], unit, 'b,
         [< Eliom_service.registrable > `Registrable ],
         Eliom_registration.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.http_service)
        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:('a, 'b, [< Eliom_service.internal_service_kind ],
                     [< Eliom_service.suff ], 'c, 'd, [ `Registrable ],
                     R.return)
                    Eliom_service.service ->
            ?error_handler:((string * exn) list -> T.page Lwt.t) ->
            ('-> '-> 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:('a, [< Eliom_service.suff ] as 'b, 'c)
                       Eliom_parameter.params_type ->
            ?error_handler:((string * exn) list -> T.page Lwt.t) ->
            ('-> unit -> T.page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  ([> `Internal of [> `Service ] ], [> `Get ])
                  Eliom_service.a_s ],
             'b, 'c, 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:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameter.params_type ->
            ?error_handler:((string * exn) list -> T.page Lwt.t) ->
            ('-> unit -> T.page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  ([> `Internal of [> `Coservice ] ], [> `Get ])
                  Eliom_service.a_s ],
             [ `WithoutSuffix ], 'b, 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:('a, [ `WithoutSuffix ], 'b)
                       Eliom_parameter.params_type ->
            ?error_handler:((string * exn) list -> T.page Lwt.t) ->
            ('-> unit -> T.page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] Eliom_service.na_s ],
             [ `WithoutSuffix ], 'b, 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:('a, unit,
                      [ `Attached of
                          ([ `Internal of [ `Coservice | `Service ] ],
                           [ `Get ])
                          Eliom_service.a_s ],
                      [< Eliom_service.suff ] as 'b, 'c, unit,
                      [< `Registrable ], 'd)
                     Eliom_service.service ->
            post_params:('e, [ `WithoutSuffix ], 'f)
                        Eliom_parameter.params_type ->
            ?error_handler:((string * exn) list -> T.page Lwt.t) ->
            ('-> '-> T.page Lwt.t) ->
            ('a, 'e,
             [> `Attached of
                  ([> `Internal of [ `Coservice | `Service ] ], [> `Post ])
                  Eliom_service.a_s ],
             'b, 'c, 'f, [< 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:('a, unit,
                      [ `Attached of
                          ([ `Internal of [< `Coservice | `Service ] ],
                           [ `Get ])
                          Eliom_service.a_s ],
                      [< Eliom_service.suff ] as 'b, 'c, unit,
                      [< `Registrable ], R.return)
                     Eliom_service.service ->
            post_params:('d, [ `WithoutSuffix ], 'e)
                        Eliom_parameter.params_type ->
            ?error_handler:((string * exn) list -> T.page Lwt.t) ->
            ('-> '-> T.page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  ([> `Internal of [> `Coservice ] ], [> `Post ])
                  Eliom_service.a_s ],
             'b, 'c, 'e, [< 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:('a, [ `WithoutSuffix ], 'b)
                        Eliom_parameter.params_type ->
            ?error_handler:((string * exn) list -> T.page Lwt.t) ->
            (unit -> '-> T.page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] Eliom_service.na_s ],
             [ `WithoutSuffix ], unit, 'b,
             [< 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.http_service)
     Eliom_registration.kind Lwt.t) ->
    unit
  val cast_unknown_content_kind :
    (Eliom_registration.unknown_content, Eliom_registration.http_service)
    Eliom_registration.kind ->
    ('a, Eliom_registration.http_service) Eliom_registration.kind
  val cast_http_result :
    Ocsigen_http_frame.result -> ('a, 'b) Eliom_registration.kind
end