sig
  type 'a kind
  type browser_content = [ `Browser ]
  type block_content
  type unknown_content
  type 'a application_content = [ `Appl of 'a ]
  type 'a application_name
  type 'a ocaml_content
  module Html :
    sig
      type page = Html_types.html Eliom_content.Html.elt
      type options = unit
      type return = Eliom_service.non_ocaml
      type result = browser_content kind
      val register :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        service:('get, 'post, 'a, 'b, 'c, Eliom_service.non_ext,
                 Eliom_service.reg, [< `WithSuffix | `WithoutSuffix ], 'd,
                 'e, return)
                Eliom_service.t ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('get -> 'post -> page Lwt.t) -> unit
      val send :
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t -> page -> result Lwt.t
      val create :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        meth:('m, 'gp, 'gn, 'pp, 'pn,
              [< `WithSuffix | `WithoutSuffix ] as 'a, 'gp_)
             Eliom_service.meth ->
        path:('att, 'co, 'gp_) Eliom_service.path_option ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, 'm, 'att, 'co, Eliom_service.non_ext, Eliom_service.reg,
         'a, 'gn, 'pn, return)
        Eliom_service.t
      val create_attached_get :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], unit, unit, return)
                 Eliom_service.t ->
        get_params:('gp, [ `WithoutSuffix ], 'gn) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> unit -> page Lwt.t) ->
        ('gp, unit, Eliom_service.get, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         unit, return)
        Eliom_service.t
      val create_attached_post :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('gp, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], 'gn, unit, return)
                 Eliom_service.t ->
        post_params:('pp, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, Eliom_service.post, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         'pn, return)
        Eliom_service.t
    end
  type appl_service_options = { do_not_launch : bool; }
  val default_appl_service_options : Eliom_registration.appl_service_options
  module type APP =
    sig
      val application_script :
        ?defer:bool ->
        ?async:bool -> unit -> [> `Script ] Eliom_content.Html.elt
      val application_name : string
      val is_initial_request : unit -> bool
      type app_id
      type page = Html_types.html Eliom_content.Html.elt
      type options = appl_service_options
      type return = Eliom_service.non_ocaml
      type result = app_id application_content kind
      val register :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        service:('get, 'post, 'a, 'b, 'c, Eliom_service.non_ext,
                 Eliom_service.reg, [< `WithSuffix | `WithoutSuffix ], 'd,
                 'e, return)
                Eliom_service.t ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('get -> 'post -> page Lwt.t) -> unit
      val send :
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t -> page -> result Lwt.t
      val create :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        meth:('m, 'gp, 'gn, 'pp, 'pn,
              [< `WithSuffix | `WithoutSuffix ] as 'a, 'gp_)
             Eliom_service.meth ->
        path:('att, 'co, 'gp_) Eliom_service.path_option ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, 'm, 'att, 'co, Eliom_service.non_ext, Eliom_service.reg,
         'a, 'gn, 'pn, return)
        Eliom_service.t
      val create_attached_get :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], unit, unit, return)
                 Eliom_service.t ->
        get_params:('gp, [ `WithoutSuffix ], 'gn) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> unit -> page Lwt.t) ->
        ('gp, unit, Eliom_service.get, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         unit, return)
        Eliom_service.t
      val create_attached_post :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('gp, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], 'gn, unit, return)
                 Eliom_service.t ->
        post_params:('pp, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, Eliom_service.post, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         'pn, return)
        Eliom_service.t
      val typed_name :
        Eliom_registration.APP.app_id Eliom_registration.application_name
    end
  val transform_global_app_uri :
    (Eliom_content.Html.uri -> Eliom_content.Html.uri) Stdlib.ref
  module App :
    functor (App_params : Eliom_registration_sigs.APP_PARAM-> APP
  module type TMPL_PARAMS =
    sig
      type t
      val name : string
      val make_page :
        Eliom_registration.TMPL_PARAMS.t ->
        Html_types.html Eliom_content.Html.elt Lwt.t
      val update :
        Eliom_registration.TMPL_PARAMS.t -> unit Eliom_client_value.t
    end
  module Eliom_tmpl :
    functor (App : APP) (Tmpl_param : TMPL_PARAMS->
      sig
        type page = Tmpl_param.t
        type options = appl_service_options
        type return = Eliom_service.non_ocaml
        type result = App.app_id application_content kind
        val register :
          ?app:string ->
          ?scope:[< Eliom_common.scope ] ->
          ?options:options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Cohttp.Header.t ->
          ?secure_session:bool ->
          service:('get, 'post, 'a, 'b, 'c, Eliom_service.non_ext,
                   Eliom_service.reg, [< `WithSuffix | `WithoutSuffix ], 'd,
                   'e, return)
                  Eliom_service.t ->
          ?error_handler:((string * exn) list -> page Lwt.t) ->
          ('get -> 'post -> page Lwt.t) -> unit
        val send :
          ?options:options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Cohttp.Header.t -> page -> result Lwt.t
        val create :
          ?app:string ->
          ?scope:[< Eliom_common.scope ] ->
          ?options:options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Cohttp.Header.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          meth:('m, 'gp, 'gn, 'pp, 'pn,
                [< `WithSuffix | `WithoutSuffix ] as 'a, 'gp_)
               Eliom_service.meth ->
          path:('att, 'co, 'gp_) Eliom_service.path_option ->
          ?error_handler:((string * exn) list -> page Lwt.t) ->
          ('gp -> 'pp -> page Lwt.t) ->
          ('gp, 'pp, 'm, 'att, 'co, Eliom_service.non_ext, Eliom_service.reg,
           'a, 'gn, 'pn, return)
          Eliom_service.t
        val create_attached_get :
          ?app:string ->
          ?scope:[< Eliom_common.scope ] ->
          ?options:options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Cohttp.Header.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          fallback:(unit, unit, Eliom_service.get, Eliom_service.att,
                    Eliom_service.non_co, Eliom_service.non_ext, 'a,
                    [ `WithoutSuffix ], unit, unit, return)
                   Eliom_service.t ->
          get_params:('gp, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> page Lwt.t) ->
          ('gp -> unit -> page Lwt.t) ->
          ('gp, unit, Eliom_service.get, Eliom_service.att, Eliom_service.co,
           Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
           unit, return)
          Eliom_service.t
        val create_attached_post :
          ?app:string ->
          ?scope:[< Eliom_common.scope ] ->
          ?options:options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Cohttp.Header.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          fallback:('gp, unit, Eliom_service.get, Eliom_service.att,
                    Eliom_service.non_co, Eliom_service.non_ext, 'a,
                    [ `WithoutSuffix ], 'gn, unit, return)
                   Eliom_service.t ->
          post_params:('pp, [ `WithoutSuffix ], 'pn)
                      Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> page Lwt.t) ->
          ('gp -> 'pp -> page Lwt.t) ->
          ('gp, 'pp, Eliom_service.post, Eliom_service.att, Eliom_service.co,
           Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
           'pn, return)
          Eliom_service.t
      end
  module Flow5 :
    sig
      type page = Html_types.flow5 Eliom_content.Html.elt list
      type options = unit
      type return = Eliom_service.non_ocaml
      type result = block_content kind
      val register :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        service:('get, 'post, 'a, 'b, 'c, Eliom_service.non_ext,
                 Eliom_service.reg, [< `WithSuffix | `WithoutSuffix ], 'd,
                 'e, return)
                Eliom_service.t ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('get -> 'post -> page Lwt.t) -> unit
      val send :
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t -> page -> result Lwt.t
      val create :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        meth:('m, 'gp, 'gn, 'pp, 'pn,
              [< `WithSuffix | `WithoutSuffix ] as 'a, 'gp_)
             Eliom_service.meth ->
        path:('att, 'co, 'gp_) Eliom_service.path_option ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, 'm, 'att, 'co, Eliom_service.non_ext, Eliom_service.reg,
         'a, 'gn, 'pn, return)
        Eliom_service.t
      val create_attached_get :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], unit, unit, return)
                 Eliom_service.t ->
        get_params:('gp, [ `WithoutSuffix ], 'gn) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> unit -> page Lwt.t) ->
        ('gp, unit, Eliom_service.get, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         unit, return)
        Eliom_service.t
      val create_attached_post :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('gp, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], 'gn, unit, return)
                 Eliom_service.t ->
        post_params:('pp, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, Eliom_service.post, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         'pn, return)
        Eliom_service.t
    end
  module Html_text :
    sig
      type page = string
      type options = unit
      type return = Eliom_service.non_ocaml
      type result = browser_content kind
      val register :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        service:('get, 'post, 'a, 'b, 'c, Eliom_service.non_ext,
                 Eliom_service.reg, [< `WithSuffix | `WithoutSuffix ], 'd,
                 'e, return)
                Eliom_service.t ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('get -> 'post -> page Lwt.t) -> unit
      val send :
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t -> page -> result Lwt.t
      val create :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        meth:('m, 'gp, 'gn, 'pp, 'pn,
              [< `WithSuffix | `WithoutSuffix ] as 'a, 'gp_)
             Eliom_service.meth ->
        path:('att, 'co, 'gp_) Eliom_service.path_option ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, 'm, 'att, 'co, Eliom_service.non_ext, Eliom_service.reg,
         'a, 'gn, 'pn, return)
        Eliom_service.t
      val create_attached_get :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], unit, unit, return)
                 Eliom_service.t ->
        get_params:('gp, [ `WithoutSuffix ], 'gn) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> unit -> page Lwt.t) ->
        ('gp, unit, Eliom_service.get, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         unit, return)
        Eliom_service.t
      val create_attached_post :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('gp, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], 'gn, unit, return)
                 Eliom_service.t ->
        post_params:('pp, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, Eliom_service.post, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         'pn, return)
        Eliom_service.t
    end
  module CssText :
    sig
      type page = string
      type options = int
      type return = Eliom_service.non_ocaml
      type result = browser_content kind
      val register :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        service:('get, 'post, 'a, 'b, 'c, Eliom_service.non_ext,
                 Eliom_service.reg, [< `WithSuffix | `WithoutSuffix ], 'd,
                 'e, return)
                Eliom_service.t ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('get -> 'post -> page Lwt.t) -> unit
      val send :
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t -> page -> result Lwt.t
      val create :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        meth:('m, 'gp, 'gn, 'pp, 'pn,
              [< `WithSuffix | `WithoutSuffix ] as 'a, 'gp_)
             Eliom_service.meth ->
        path:('att, 'co, 'gp_) Eliom_service.path_option ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, 'm, 'att, 'co, Eliom_service.non_ext, Eliom_service.reg,
         'a, 'gn, 'pn, return)
        Eliom_service.t
      val create_attached_get :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], unit, unit, return)
                 Eliom_service.t ->
        get_params:('gp, [ `WithoutSuffix ], 'gn) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> unit -> page Lwt.t) ->
        ('gp, unit, Eliom_service.get, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         unit, return)
        Eliom_service.t
      val create_attached_post :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('gp, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], 'gn, unit, return)
                 Eliom_service.t ->
        post_params:('pp, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, Eliom_service.post, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         'pn, return)
        Eliom_service.t
    end
  module Action :
    sig
      type page = unit
      type options = [ `NoReload | `Reload ]
      type return = Eliom_service.non_ocaml
      type result = browser_content kind
      val register :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        service:('get, 'post, 'a, 'b, 'c, Eliom_service.non_ext,
                 Eliom_service.reg, [< `WithSuffix | `WithoutSuffix ], 'd,
                 'e, return)
                Eliom_service.t ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('get -> 'post -> page Lwt.t) -> unit
      val send :
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t -> page -> result Lwt.t
      val create :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        meth:('m, 'gp, 'gn, 'pp, 'pn,
              [< `WithSuffix | `WithoutSuffix ] as 'a, 'gp_)
             Eliom_service.meth ->
        path:('att, 'co, 'gp_) Eliom_service.path_option ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, 'm, 'att, 'co, Eliom_service.non_ext, Eliom_service.reg,
         'a, 'gn, 'pn, return)
        Eliom_service.t
      val create_attached_get :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], unit, unit, return)
                 Eliom_service.t ->
        get_params:('gp, [ `WithoutSuffix ], 'gn) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> unit -> page Lwt.t) ->
        ('gp, unit, Eliom_service.get, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         unit, return)
        Eliom_service.t
      val create_attached_post :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('gp, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], 'gn, unit, return)
                 Eliom_service.t ->
        post_params:('pp, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, Eliom_service.post, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         'pn, return)
        Eliom_service.t
    end
  module Unit :
    sig
      type page = unit
      type options = unit
      type return = Eliom_service.non_ocaml
      type result = browser_content kind
      val register :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        service:('get, 'post, 'a, 'b, 'c, Eliom_service.non_ext,
                 Eliom_service.reg, [< `WithSuffix | `WithoutSuffix ], 'd,
                 'e, return)
                Eliom_service.t ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('get -> 'post -> page Lwt.t) -> unit
      val send :
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t -> page -> result Lwt.t
      val create :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        meth:('m, 'gp, 'gn, 'pp, 'pn,
              [< `WithSuffix | `WithoutSuffix ] as 'a, 'gp_)
             Eliom_service.meth ->
        path:('att, 'co, 'gp_) Eliom_service.path_option ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, 'm, 'att, 'co, Eliom_service.non_ext, Eliom_service.reg,
         'a, 'gn, 'pn, return)
        Eliom_service.t
      val create_attached_get :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], unit, unit, return)
                 Eliom_service.t ->
        get_params:('gp, [ `WithoutSuffix ], 'gn) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> unit -> page Lwt.t) ->
        ('gp, unit, Eliom_service.get, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         unit, return)
        Eliom_service.t
      val create_attached_post :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('gp, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], 'gn, unit, return)
                 Eliom_service.t ->
        post_params:('pp, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, Eliom_service.post, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         'pn, return)
        Eliom_service.t
    end
  type _ redirection =
      Redirection :
        (unit, unit, Eliom_service.get, 'b, 'c, 'd, 'e, [ `WithoutSuffix ],
         unit, unit, 'a)
        Eliom_service.t -> 'Eliom_registration.redirection
  module Redirection :
    sig
      type 'a page = 'a redirection
      type options =
          [ `Found
          | `MovedPermanently
          | `NotNodifed
          | `SeeOther
          | `TemporaryRedirect
          | `UseProxy ]
      type 'a return = 'a
      val register :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        service:('get, 'post, 'b, 'c, 'd, Eliom_service.non_ext,
                 Eliom_service.reg, [< `WithSuffix | `WithoutSuffix ], 'e,
                 'f, 'a return)
                Eliom_service.t ->
        ?error_handler:((string * exn) list -> 'a page Lwt.t) ->
        ('get -> 'post -> 'a page Lwt.t) -> unit
      val create :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        meth:('m, 'gp, 'gn, 'pp, 'pn,
              [< `WithSuffix | `WithoutSuffix ] as 'b, 'gp_)
             Eliom_service.meth ->
        path:('att, 'co, 'gp_) Eliom_service.path_option ->
        ?error_handler:((string * exn) list -> 'a page Lwt.t) ->
        ('gp -> 'pp -> 'a page Lwt.t) ->
        ('gp, 'pp, 'm, 'att, 'co, Eliom_service.non_ext, Eliom_service.reg,
         'b, 'gn, 'pn, 'a return)
        Eliom_service.t
      val create_attached_get :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'b,
                  [ `WithoutSuffix ], unit, unit, 'a return)
                 Eliom_service.t ->
        get_params:('gp, [ `WithoutSuffix ], 'gn) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'a page Lwt.t) ->
        ('gp -> unit -> 'a page Lwt.t) ->
        ('gp, unit, Eliom_service.get, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         unit, 'a return)
        Eliom_service.t
      val create_attached_post :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('gp, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'b,
                  [ `WithoutSuffix ], 'gn, unit, 'a return)
                 Eliom_service.t ->
        post_params:('pp, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'a page Lwt.t) ->
        ('gp -> 'pp -> 'a page Lwt.t) ->
        ('gp, 'pp, Eliom_service.post, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         'pn, 'a return)
        Eliom_service.t
      val send :
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Ocsigen_header.t ->
        'a page -> '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_service.non_ocaml
      type result = browser_content kind
      val register :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        service:('get, 'post, 'a, 'b, 'c, Eliom_service.non_ext,
                 Eliom_service.reg, [< `WithSuffix | `WithoutSuffix ], 'd,
                 'e, return)
                Eliom_service.t ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('get -> 'post -> page Lwt.t) -> unit
      val send :
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t -> page -> result Lwt.t
      val create :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        meth:('m, 'gp, 'gn, 'pp, 'pn,
              [< `WithSuffix | `WithoutSuffix ] as 'a, 'gp_)
             Eliom_service.meth ->
        path:('att, 'co, 'gp_) Eliom_service.path_option ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, 'm, 'att, 'co, Eliom_service.non_ext, Eliom_service.reg,
         'a, 'gn, 'pn, return)
        Eliom_service.t
      val create_attached_get :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], unit, unit, return)
                 Eliom_service.t ->
        get_params:('gp, [ `WithoutSuffix ], 'gn) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> unit -> page Lwt.t) ->
        ('gp, unit, Eliom_service.get, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         unit, return)
        Eliom_service.t
      val create_attached_post :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('gp, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], 'gn, unit, return)
                 Eliom_service.t ->
        post_params:('pp, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, Eliom_service.post, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         'pn, return)
        Eliom_service.t
    end
  module File :
    sig
      val check_file : string -> bool
      type page = string
      type options = int
      type return = Eliom_service.non_ocaml
      type result = browser_content kind
      val register :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        service:('get, 'post, 'a, 'b, 'c, Eliom_service.non_ext,
                 Eliom_service.reg, [< `WithSuffix | `WithoutSuffix ], 'd,
                 'e, return)
                Eliom_service.t ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('get -> 'post -> page Lwt.t) -> unit
      val send :
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t -> page -> result Lwt.t
      val create :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        meth:('m, 'gp, 'gn, 'pp, 'pn,
              [< `WithSuffix | `WithoutSuffix ] as 'a, 'gp_)
             Eliom_service.meth ->
        path:('att, 'co, 'gp_) Eliom_service.path_option ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, 'm, 'att, 'co, Eliom_service.non_ext, Eliom_service.reg,
         'a, 'gn, 'pn, return)
        Eliom_service.t
      val create_attached_get :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], unit, unit, return)
                 Eliom_service.t ->
        get_params:('gp, [ `WithoutSuffix ], 'gn) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> unit -> page Lwt.t) ->
        ('gp, unit, Eliom_service.get, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         unit, return)
        Eliom_service.t
      val create_attached_post :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('gp, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], 'gn, unit, return)
                 Eliom_service.t ->
        post_params:('pp, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, Eliom_service.post, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         'pn, return)
        Eliom_service.t
    end
  module File_ct :
    sig
      val check_file : string -> bool
      type page = string * string
      type options = int
      type return = Eliom_service.non_ocaml
      type result = browser_content kind
      val register :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        service:('get, 'post, 'a, 'b, 'c, Eliom_service.non_ext,
                 Eliom_service.reg, [< `WithSuffix | `WithoutSuffix ], 'd,
                 'e, return)
                Eliom_service.t ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('get -> 'post -> page Lwt.t) -> unit
      val send :
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t -> page -> result Lwt.t
      val create :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        meth:('m, 'gp, 'gn, 'pp, 'pn,
              [< `WithSuffix | `WithoutSuffix ] as 'a, 'gp_)
             Eliom_service.meth ->
        path:('att, 'co, 'gp_) Eliom_service.path_option ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, 'm, 'att, 'co, Eliom_service.non_ext, Eliom_service.reg,
         'a, 'gn, 'pn, return)
        Eliom_service.t
      val create_attached_get :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], unit, unit, return)
                 Eliom_service.t ->
        get_params:('gp, [ `WithoutSuffix ], 'gn) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> unit -> page Lwt.t) ->
        ('gp, unit, Eliom_service.get, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         unit, return)
        Eliom_service.t
      val create_attached_post :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('gp, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], 'gn, unit, return)
                 Eliom_service.t ->
        post_params:('pp, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, Eliom_service.post, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         'pn, return)
        Eliom_service.t
    end
  module Ocaml :
    sig
      type 'a page = 'a
      type options = unit
      type 'a return = 'Eliom_service.ocaml
      val register :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        service:('get, 'post, 'b, 'c, 'd, Eliom_service.non_ext,
                 Eliom_service.reg, [< `WithSuffix | `WithoutSuffix ], 'e,
                 'f, 'a return)
                Eliom_service.t ->
        ?error_handler:((string * exn) list -> 'a page Lwt.t) ->
        ('get -> 'post -> 'a page Lwt.t) -> unit
      val create :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        meth:('m, 'gp, 'gn, 'pp, 'pn,
              [< `WithSuffix | `WithoutSuffix ] as 'b, 'gp_)
             Eliom_service.meth ->
        path:('att, 'co, 'gp_) Eliom_service.path_option ->
        ?error_handler:((string * exn) list -> 'a page Lwt.t) ->
        ('gp -> 'pp -> 'a page Lwt.t) ->
        ('gp, 'pp, 'm, 'att, 'co, Eliom_service.non_ext, Eliom_service.reg,
         'b, 'gn, 'pn, 'a return)
        Eliom_service.t
      val create_attached_get :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'b,
                  [ `WithoutSuffix ], unit, unit, 'a return)
                 Eliom_service.t ->
        get_params:('gp, [ `WithoutSuffix ], 'gn) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'a page Lwt.t) ->
        ('gp -> unit -> 'a page Lwt.t) ->
        ('gp, unit, Eliom_service.get, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         unit, 'a return)
        Eliom_service.t
      val create_attached_post :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('gp, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'b,
                  [ `WithoutSuffix ], 'gn, unit, 'a return)
                 Eliom_service.t ->
        post_params:('pp, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'a page Lwt.t) ->
        ('gp -> 'pp -> 'a page Lwt.t) ->
        ('gp, 'pp, Eliom_service.post, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         'pn, 'a return)
        Eliom_service.t
      type 'a result = 'a ocaml_content kind
      val send :
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t -> 'a page -> 'a result Lwt.t
    end
  module Any :
    sig
      type 'a page = 'a kind
      type options = unit
      type 'a return = Eliom_service.non_ocaml
      val register :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        service:('get, 'post, 'b, 'c, 'd, Eliom_service.non_ext,
                 Eliom_service.reg, [< `WithSuffix | `WithoutSuffix ], 'e,
                 'f, 'a return)
                Eliom_service.t ->
        ?error_handler:((string * exn) list -> 'a page Lwt.t) ->
        ('get -> 'post -> 'a page Lwt.t) -> unit
      val create :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        meth:('m, 'gp, 'gn, 'pp, 'pn,
              [< `WithSuffix | `WithoutSuffix ] as 'b, 'gp_)
             Eliom_service.meth ->
        path:('att, 'co, 'gp_) Eliom_service.path_option ->
        ?error_handler:((string * exn) list -> 'a page Lwt.t) ->
        ('gp -> 'pp -> 'a page Lwt.t) ->
        ('gp, 'pp, 'm, 'att, 'co, Eliom_service.non_ext, Eliom_service.reg,
         'b, 'gn, 'pn, 'a return)
        Eliom_service.t
      val create_attached_get :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'b,
                  [ `WithoutSuffix ], unit, unit, 'a return)
                 Eliom_service.t ->
        get_params:('gp, [ `WithoutSuffix ], 'gn) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'a page Lwt.t) ->
        ('gp -> unit -> 'a page Lwt.t) ->
        ('gp, unit, Eliom_service.get, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         unit, 'a return)
        Eliom_service.t
      val create_attached_post :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('gp, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'b,
                  [ `WithoutSuffix ], 'gn, unit, 'a return)
                 Eliom_service.t ->
        post_params:('pp, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> 'a page Lwt.t) ->
        ('gp -> 'pp -> 'a page Lwt.t) ->
        ('gp, 'pp, Eliom_service.post, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         'pn, 'a return)
        Eliom_service.t
      type 'a result = 'a kind
      val send :
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t -> 'a page -> 'a result Lwt.t
    end
  val appl_self_redirect :
    ('page -> [< `Appl of '| `Browser ] Eliom_registration.kind Lwt.t) ->
    'page ->
    'appl Eliom_registration.application_content Eliom_registration.kind
    Lwt.t
  module String :
    sig
      type page = string * string
      type options = int
      type return = Eliom_service.non_ocaml
      type result = unknown_content kind
      val register :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        service:('get, 'post, 'a, 'b, 'c, Eliom_service.non_ext,
                 Eliom_service.reg, [< `WithSuffix | `WithoutSuffix ], 'd,
                 'e, return)
                Eliom_service.t ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('get -> 'post -> page Lwt.t) -> unit
      val send :
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t -> page -> result Lwt.t
      val create :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        meth:('m, 'gp, 'gn, 'pp, 'pn,
              [< `WithSuffix | `WithoutSuffix ] as 'a, 'gp_)
             Eliom_service.meth ->
        path:('att, 'co, 'gp_) Eliom_service.path_option ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, 'm, 'att, 'co, Eliom_service.non_ext, Eliom_service.reg,
         'a, 'gn, 'pn, return)
        Eliom_service.t
      val create_attached_get :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], unit, unit, return)
                 Eliom_service.t ->
        get_params:('gp, [ `WithoutSuffix ], 'gn) Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> unit -> page Lwt.t) ->
        ('gp, unit, Eliom_service.get, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         unit, return)
        Eliom_service.t
      val create_attached_post :
        ?app:string ->
        ?scope:[< Eliom_common.scope ] ->
        ?options:options ->
        ?charset:string ->
        ?code:int ->
        ?content_type:string ->
        ?headers:Cohttp.Header.t ->
        ?secure_session:bool ->
        ?https:bool ->
        ?name:string ->
        ?csrf_safe:bool ->
        ?csrf_scope:[< Eliom_common.user_scope ] ->
        ?csrf_secure:bool ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('gp, unit, Eliom_service.get, Eliom_service.att,
                  Eliom_service.non_co, Eliom_service.non_ext, 'a,
                  [ `WithoutSuffix ], 'gn, unit, return)
                 Eliom_service.t ->
        post_params:('pp, [ `WithoutSuffix ], 'pn)
                    Eliom_parameter.params_type ->
        ?error_handler:((string * exn) list -> page Lwt.t) ->
        ('gp -> 'pp -> page Lwt.t) ->
        ('gp, 'pp, Eliom_service.post, Eliom_service.att, Eliom_service.co,
         Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
         'pn, return)
        Eliom_service.t
    end
  module Customize :
    functor (R : Eliom_registration_sigs.S_with_create)
      (T : sig
             type page
             val translate :
               Eliom_registration.Customize.page -> R.page Lwt.t
           end)
      ->
      sig
        type page = T.page
        type options = R.options
        type return = R.return
        type result = R.result
        val register :
          ?app:string ->
          ?scope:[< Eliom_common.scope ] ->
          ?options:options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Cohttp.Header.t ->
          ?secure_session:bool ->
          service:('get, 'post, 'a, 'b, 'c, Eliom_service.non_ext,
                   Eliom_service.reg, [< `WithSuffix | `WithoutSuffix ], 'd,
                   'e, return)
                  Eliom_service.t ->
          ?error_handler:((string * exn) list -> page Lwt.t) ->
          ('get -> 'post -> page Lwt.t) -> unit
        val send :
          ?options:options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Cohttp.Header.t -> page -> result Lwt.t
        val create :
          ?app:string ->
          ?scope:[< Eliom_common.scope ] ->
          ?options:options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Cohttp.Header.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          meth:('m, 'gp, 'gn, 'pp, 'pn,
                [< `WithSuffix | `WithoutSuffix ] as 'a, 'gp_)
               Eliom_service.meth ->
          path:('att, 'co, 'gp_) Eliom_service.path_option ->
          ?error_handler:((string * exn) list -> page Lwt.t) ->
          ('gp -> 'pp -> page Lwt.t) ->
          ('gp, 'pp, 'm, 'att, 'co, Eliom_service.non_ext, Eliom_service.reg,
           'a, 'gn, 'pn, return)
          Eliom_service.t
        val create_attached_get :
          ?app:string ->
          ?scope:[< Eliom_common.scope ] ->
          ?options:options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Cohttp.Header.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          fallback:(unit, unit, Eliom_service.get, Eliom_service.att,
                    Eliom_service.non_co, Eliom_service.non_ext, 'a,
                    [ `WithoutSuffix ], unit, unit, return)
                   Eliom_service.t ->
          get_params:('gp, [ `WithoutSuffix ], 'gn)
                     Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> page Lwt.t) ->
          ('gp -> unit -> page Lwt.t) ->
          ('gp, unit, Eliom_service.get, Eliom_service.att, Eliom_service.co,
           Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
           unit, return)
          Eliom_service.t
        val create_attached_post :
          ?app:string ->
          ?scope:[< Eliom_common.scope ] ->
          ?options:options ->
          ?charset:string ->
          ?code:int ->
          ?content_type:string ->
          ?headers:Cohttp.Header.t ->
          ?secure_session:bool ->
          ?https:bool ->
          ?name:string ->
          ?csrf_safe:bool ->
          ?csrf_scope:[< Eliom_common.user_scope ] ->
          ?csrf_secure:bool ->
          ?max_use:int ->
          ?timeout:float ->
          fallback:('gp, unit, Eliom_service.get, Eliom_service.att,
                    Eliom_service.non_co, Eliom_service.non_ext, 'a,
                    [ `WithoutSuffix ], 'gn, unit, return)
                   Eliom_service.t ->
          post_params:('pp, [ `WithoutSuffix ], 'pn)
                      Eliom_parameter.params_type ->
          ?error_handler:((string * exn) list -> page Lwt.t) ->
          ('gp -> 'pp -> page Lwt.t) ->
          ('gp, 'pp, Eliom_service.post, Eliom_service.att, Eliom_service.co,
           Eliom_service.non_ext, Eliom_service.reg, [ `WithoutSuffix ], 'gn,
           'pn, return)
          Eliom_service.t
      end
  val set_exn_handler :
    (exn -> Eliom_registration.browser_content Eliom_registration.kind Lwt.t) ->
    unit
  val cast_unknown_content_kind :
    Eliom_registration.unknown_content Eliom_registration.kind ->
    'Eliom_registration.kind
  val cast_http_result : Ocsigen_response.t -> 'Eliom_registration.kind
  val extension : Ocsigen_server.Site.extension
  val end_init : unit -> unit
end