sig
  exception Eliom_404
  exception Eliom_Wrong_parameter
  exception Eliom_Session_expired
  exception Eliom_Typing_Error of (string * exn) list
  exception Eliom_site_information_not_available of string
  type scope_name = Eliom_common_base.scope_name
  type user_scope =
      [ `Client_process of Eliom_common.scope_name
      | `Session of Eliom_common.scope_name
      | `Session_group of Eliom_common.scope_name ]
  type scope =
      [ `Client_process of Eliom_common.scope_name
      | `Session of Eliom_common.scope_name
      | `Session_group of Eliom_common.scope_name
      | `Site ]
  type all_scope =
      [ `Client_process of Eliom_common.scope_name
      | `Global
      | `Request
      | `Session of Eliom_common.scope_name
      | `Session_group of Eliom_common.scope_name
      | `Site ]
  type global_scope = [ `Global ]
  type site_scope = [ `Site ]
  type session_group_scope = [ `Session_group of Eliom_common.scope_name ]
  type session_scope = [ `Session of Eliom_common.scope_name ]
  type client_process_scope = [ `Client_process of Eliom_common.scope_name ]
  type request_scope = [ `Request ]
  val global : Eliom_common.global_scope
  val site : Eliom_common.site_scope
  val session_group : Eliom_common.session_group_scope
  val session : Eliom_common.session_scope
  val client_process : Eliom_common.client_process_scope
  val comet_client_process : Eliom_common.client_process_scope
  val request : Eliom_common.request_scope
  val create_scope_name : string -> Eliom_common.scope_name
  val list_scope_names : unit -> Eliom_common.scope_name list
  type cookie_scope = [ `Client_process | `Session ]
  val cookie_scope_of_user_scope :
    [< Eliom_common.user_scope ] -> [> Eliom_common.cookie_scope ]
  type fullsessionname = Eliom_common.cookie_scope * string
  module Fullsessionname_Table :
    sig
      type key = fullsessionname
      type +'a t
      val empty : 'a t
      val is_empty : 'a t -> bool
      val mem : key -> 'a t -> bool
      val add : key -> '-> 'a t -> 'a t
      val singleton : key -> '-> 'a t
      val remove : key -> 'a t -> 'a t
      val merge :
        (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
      val compare : ('-> '-> int) -> 'a t -> 'a t -> int
      val equal : ('-> '-> bool) -> 'a t -> 'a t -> bool
      val iter : (key -> '-> unit) -> 'a t -> unit
      val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
      val for_all : (key -> '-> bool) -> 'a t -> bool
      val exists : (key -> '-> bool) -> 'a t -> bool
      val filter : (key -> '-> bool) -> 'a t -> 'a t
      val partition : (key -> '-> bool) -> 'a t -> 'a t * 'a t
      val cardinal : 'a t -> int
      val bindings : 'a t -> (key * 'a) list
      val min_binding : 'a t -> key * 'a
      val max_binding : 'a t -> key * 'a
      val choose : 'a t -> key * 'a
      val split : key -> 'a t -> 'a t * 'a option * 'a t
      val find : key -> 'a t -> 'a
      val map : ('-> 'b) -> 'a t -> 'b t
      val mapi : (key -> '-> 'b) -> 'a t -> 'b t
    end
  val eliom_link_too_old : bool Polytables.key
  val eliom_service_session_expired :
    (Eliom_common.fullsessionname list * Eliom_common.fullsessionname list)
    Polytables.key
  exception Eliom_do_redirection of string
  exception Eliom_do_half_xhr_redirection of string
  type 'a tenable_value =
      < get : 'a; set : ?override_tenable:bool -> '-> unit >
  val tenable_value : name:string -> '-> 'Eliom_common.tenable_value
  type att_key_serv =
      SAtt_no
    | SAtt_named of string
    | SAtt_anon of string
    | SAtt_csrf_safe of (int * Eliom_common.user_scope * bool option)
  type na_key_serv =
      SNa_no
    | SNa_void_keep
    | SNa_void_dontkeep
    | SNa_get_ of string
    | SNa_post_ of string
    | SNa_get' of string
    | SNa_post' of string
    | SNa_get_csrf_safe of (int * Eliom_common.user_scope * bool option)
    | SNa_post_csrf_safe of (int * Eliom_common.user_scope * bool option)
  type att_key_req = RAtt_no | RAtt_named of string | RAtt_anon of string
  type na_key_req =
      RNa_no
    | RNa_get_ of string
    | RNa_post_ of string
    | RNa_get' of string
    | RNa_post' of string
  exception Eliom_duplicate_registration of string
  exception Eliom_there_are_unregistered_services of
              (string list * string list list * Eliom_common.na_key_serv list)
  exception Eliom_page_erasing of string
  exception Eliom_error_while_loading_site of string
  val defaultpagename : string
  val eliom_suffix_name : string
  val eliom_suffix_internal_name : string
  val eliom_nosuffix_page : string
  val naservice_num : string
  val naservice_name : string
  val get_state_param_name : string
  val post_state_param_name : string
  val get_numstate_param_name : string
  val post_numstate_param_name : string
  val co_param_prefix : string
  val na_co_param_prefix : string
  val nl_param_prefix : string
  val eliom_internal_nlp_prefix : string
  val pnl_param_prefix : string
  val npnl_param_prefix : string
  val datacookiename : string
  val servicecookiename : string
  val persistentcookiename : string
  val sdatacookiename : string
  val sservicecookiename : string
  val spersistentcookiename : string
  val persistent_cookie_table_version : string
  val eliom_persistent_cookie_table : string
  val inline_class_name : string
  val nodisplay_class_name : string
  val appl_name_cookie_name : string
  val tab_cookies_param_name : string
  val to_be_considered_as_get_param_name : string
  val full_xhr_redir_header : string
  val half_xhr_redir_header : string
  val default_group_name : string
  type client_process_info = {
    cpi_ssl : bool;
    cpi_hostname : string;
    cpi_server_port : int;
    cpi_original_full_path : Eliom_lib.Url.path;
  }
  type sess_info = {
    si_other_get_params : (string * string) list;
    si_all_get_params : (string * string) list;
    si_all_post_params : (string * string) list option;
    si_service_session_cookies : string Eliom_common.Fullsessionname_Table.t;
    si_data_session_cookies : string Eliom_common.Fullsessionname_Table.t;
    si_persistent_session_cookies :
      string Eliom_common.Fullsessionname_Table.t;
    si_secure_cookie_info :
      (string Eliom_common.Fullsessionname_Table.t *
       string Eliom_common.Fullsessionname_Table.t *
       string Eliom_common.Fullsessionname_Table.t)
      option;
    si_service_session_cookies_tab :
      string Eliom_common.Fullsessionname_Table.t;
    si_data_session_cookies_tab : string Eliom_common.Fullsessionname_Table.t;
    si_persistent_session_cookies_tab :
      string Eliom_common.Fullsessionname_Table.t;
    si_secure_cookie_info_tab :
      (string Eliom_common.Fullsessionname_Table.t *
       string Eliom_common.Fullsessionname_Table.t *
       string Eliom_common.Fullsessionname_Table.t)
      option;
    si_tab_cookies : string Ocsigen_cookies.CookiesTable.t;
    si_nonatt_info : Eliom_common.na_key_req;
    si_state_info : Eliom_common.att_key_req * Eliom_common.att_key_req;
    si_previous_extension_error : int;
    si_na_get_params : (string * string) list Lazy.t;
    si_nl_get_params : (string * string) list Eliom_lib.String.Table.t;
    si_nl_post_params : (string * string) list Eliom_lib.String.Table.t;
    si_persistent_nl_get_params :
      (string * string) list Eliom_lib.String.Table.t Lazy.t;
    si_all_get_but_na_nl : (string * string) list Lazy.t;
    si_all_get_but_nl : (string * string) list;
    si_client_process_info : Eliom_common.client_process_info option;
    si_expect_process_data : bool Lazy.t;
  }
  module SessionCookies :
    sig
      type key = string
      type 'a t
      val create : int -> 'a t
      val clear : 'a t -> unit
      val copy : 'a t -> 'a t
      val add : 'a t -> key -> '-> unit
      val remove : 'a t -> key -> unit
      val find : 'a t -> key -> 'a
      val find_all : 'a t -> key -> 'a list
      val replace : 'a t -> key -> '-> unit
      val mem : 'a t -> key -> bool
      val iter : (key -> '-> unit) -> 'a t -> unit
      val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
      val length : 'a t -> int
    end
  type 'a sessgrp =
      string * Eliom_common.cookie_scope *
      (string, Eliom_lib.Ip_address.t) Eliom_lib.leftright
  type perssessgrp
  val make_persistent_full_group_name :
    cookie_scope:Eliom_common.cookie_scope ->
    string -> string option -> Eliom_common.perssessgrp option
  val getperssessgrp :
    Eliom_common.perssessgrp ->
    string * Eliom_common.cookie_scope *
    (string, Eliom_lib.Ip_address.t) Eliom_lib.leftright
  val string_of_perssessgrp : Eliom_common.perssessgrp -> string
  type 'a session_cookie = SCNo_data | SCData_session_expired | SC of 'a
  type cookie_exp = CENothing | CEBrowser | CESome of float
  type timeout = TGlobal | TNone | TSome of float
  type 'a one_service_cookie_info = {
    sc_value : string;
    sc_table : 'Pervasives.ref;
    sc_timeout : Eliom_common.timeout Pervasives.ref;
    sc_exp : float option Pervasives.ref;
    sc_cookie_exp : Eliom_common.cookie_exp Pervasives.ref;
    sc_session_group :
      Eliom_common.cookie_scope Eliom_common.sessgrp Pervasives.ref;
    mutable sc_session_group_node : string Ocsigen_cache.Dlist.node;
  }
  type one_data_cookie_info = {
    dc_value : string;
    dc_timeout : Eliom_common.timeout Pervasives.ref;
    dc_exp : float option Pervasives.ref;
    dc_cookie_exp : Eliom_common.cookie_exp Pervasives.ref;
    dc_session_group :
      Eliom_common.cookie_scope Eliom_common.sessgrp Pervasives.ref;
    mutable dc_session_group_node : string Ocsigen_cache.Dlist.node;
  }
  type one_persistent_cookie_info = {
    pc_value : string;
    pc_timeout : Eliom_common.timeout Pervasives.ref;
    pc_cookie_exp : Eliom_common.cookie_exp Pervasives.ref;
    pc_session_group : Eliom_common.perssessgrp option Pervasives.ref;
  }
  type 'a cookie_info1 =
      (string option *
       'Eliom_common.one_service_cookie_info Eliom_common.session_cookie
       Pervasives.ref)
      Eliom_common.Fullsessionname_Table.t Pervasives.ref *
      (string option *
       Eliom_common.one_data_cookie_info Eliom_common.session_cookie
       Pervasives.ref)
      Lazy.t Eliom_common.Fullsessionname_Table.t Pervasives.ref *
      ((string * Eliom_common.timeout * float option *
        Eliom_common.perssessgrp option)
       option *
       Eliom_common.one_persistent_cookie_info Eliom_common.session_cookie
       Pervasives.ref)
      Lwt.t Lazy.t Eliom_common.Fullsessionname_Table.t Pervasives.ref
  type 'a cookie_info =
      'Eliom_common.cookie_info1 * 'Eliom_common.cookie_info1 option
  type 'a servicecookiestablecontent =
      Eliom_common.fullsessionname * 'a * float option Pervasives.ref *
      Eliom_common.timeout Pervasives.ref *
      Eliom_common.cookie_scope Eliom_common.sessgrp Pervasives.ref *
      string Ocsigen_cache.Dlist.node
  type 'a servicecookiestable =
      'Eliom_common.servicecookiestablecontent
      Eliom_common.SessionCookies.t
  type datacookiestablecontent =
      Eliom_common.fullsessionname * float option Pervasives.ref *
      Eliom_common.timeout Pervasives.ref *
      Eliom_common.cookie_scope Eliom_common.sessgrp Pervasives.ref *
      string Ocsigen_cache.Dlist.node
  type datacookiestable =
      Eliom_common.datacookiestablecontent Eliom_common.SessionCookies.t
  type page_table_key = {
    key_state : Eliom_common.att_key_serv * Eliom_common.att_key_serv;
    key_kind : Ocsigen_http_frame.Http_header.http_method;
  }
  module NAserv_Table :
    sig
      type key = na_key_serv
      type +'a t
      val empty : 'a t
      val is_empty : 'a t -> bool
      val mem : key -> 'a t -> bool
      val add : key -> '-> 'a t -> 'a t
      val singleton : key -> '-> 'a t
      val remove : key -> 'a t -> 'a t
      val merge :
        (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
      val compare : ('-> '-> int) -> 'a t -> 'a t -> int
      val equal : ('-> '-> bool) -> 'a t -> 'a t -> bool
      val iter : (key -> '-> unit) -> 'a t -> unit
      val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
      val for_all : (key -> '-> bool) -> 'a t -> bool
      val exists : (key -> '-> bool) -> 'a t -> bool
      val filter : (key -> '-> bool) -> 'a t -> 'a t
      val partition : (key -> '-> bool) -> 'a t -> 'a t * 'a t
      val cardinal : 'a t -> int
      val bindings : 'a t -> (key * 'a) list
      val min_binding : 'a t -> key * 'a
      val max_binding : 'a t -> key * 'a
      val choose : 'a t -> key * 'a
      val split : key -> 'a t -> 'a t * 'a option * 'a t
      val find : key -> 'a t -> 'a
      val map : ('-> 'b) -> 'a t -> 'b t
      val mapi : (key -> '-> 'b) -> 'a t -> 'b t
    end
  module Serv_Table :
    sig
      type key = page_table_key
      type +'a t
      val empty : 'a t
      val is_empty : 'a t -> bool
      val mem : key -> 'a t -> bool
      val add : key -> '-> 'a t -> 'a t
      val singleton : key -> '-> 'a t
      val remove : key -> 'a t -> 'a t
      val merge :
        (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
      val compare : ('-> '-> int) -> 'a t -> 'a t -> int
      val equal : ('-> '-> bool) -> 'a t -> 'a t -> bool
      val iter : (key -> '-> unit) -> 'a t -> unit
      val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b
      val for_all : (key -> '-> bool) -> 'a t -> bool
      val exists : (key -> '-> bool) -> 'a t -> bool
      val filter : (key -> '-> bool) -> 'a t -> 'a t
      val partition : (key -> '-> bool) -> 'a t -> 'a t * 'a t
      val cardinal : 'a t -> int
      val bindings : 'a t -> (key * 'a) list
      val min_binding : 'a t -> key * 'a
      val max_binding : 'a t -> key * 'a
      val choose : 'a t -> key * 'a
      val split : key -> 'a t -> 'a t * 'a option * 'a t
      val find : key -> 'a t -> 'a
      val map : ('-> 'b) -> 'a t -> 'b t
      val mapi : (key -> '-> 'b) -> 'a t -> 'b t
    end
  type dlist_ip_table
  type anon_params_type = int
  type node_ref = string
  type node_info = { ni_id : Eliom_common.node_ref; mutable ni_sent : bool; }
  type server_params = {
    sp_request : Ocsigen_extensions.request;
    sp_si : Eliom_common.sess_info;
    sp_sitedata : Eliom_common.sitedata;
    sp_cookie_info : Eliom_common.tables Eliom_common.cookie_info;
    sp_tab_cookie_info : Eliom_common.tables Eliom_common.cookie_info;
    mutable sp_user_cookies : Ocsigen_cookies.cookieset;
    mutable sp_user_tab_cookies : Ocsigen_cookies.cookieset;
    mutable sp_client_appl_name : string option;
    sp_suffix : Eliom_lib.Url.path option;
    sp_fullsessname : Eliom_common.fullsessionname option;
    sp_client_process_info : Eliom_common.client_process_info;
  }
  and page_table = Eliom_common.page_table_content Eliom_common.Serv_Table.t
  and page_table_content =
      Ptc of
        (Eliom_common.page_table Pervasives.ref * Eliom_common.page_table_key,
         Eliom_common.na_key_serv)
        Eliom_lib.leftright Ocsigen_cache.Dlist.node option *
        ((Eliom_common.anon_params_type * Eliom_common.anon_params_type) *
         (int Pervasives.ref option * (float * float Pervasives.ref) option *
          (bool ->
           Eliom_common.server_params -> Ocsigen_http_frame.result Lwt.t)))
        list
  and naservice_table_content =
      int * int Pervasives.ref option *
      (float * float Pervasives.ref) option *
      (Eliom_common.server_params -> Ocsigen_http_frame.result Lwt.t) *
      (Eliom_common.page_table Pervasives.ref * Eliom_common.page_table_key,
       Eliom_common.na_key_serv)
      Eliom_lib.leftright Ocsigen_cache.Dlist.node option
  and naservice_table =
      AVide
    | ATable of
        Eliom_common.naservice_table_content Eliom_common.NAserv_Table.t
  and dircontent =
      Vide
    | Table of Eliom_common.direlt Pervasives.ref Eliom_lib.String.Table.t
  and direlt =
      Dir of Eliom_common.dircontent Pervasives.ref
    | File of Eliom_common.page_table Pervasives.ref
  and tables = {
    mutable table_services :
      (int * int * Eliom_common.dircontent Pervasives.ref) list;
    table_naservices : Eliom_common.naservice_table Pervasives.ref;
    mutable table_contains_services_with_timeout : bool;
    mutable table_contains_naservices_with_timeout : bool;
    mutable csrf_get_or_na_registration_functions :
      (sp:Eliom_common.server_params -> string) Eliom_lib.Int.Table.t;
    mutable csrf_post_registration_functions :
      (sp:Eliom_common.server_params -> Eliom_common.att_key_serv -> string)
      Eliom_lib.Int.Table.t;
    service_dlist_add :
      ?sp:Eliom_common.server_params ->
      (Eliom_common.page_table Pervasives.ref * Eliom_common.page_table_key,
       Eliom_common.na_key_serv)
      Eliom_lib.leftright ->
      (Eliom_common.page_table Pervasives.ref * Eliom_common.page_table_key,
       Eliom_common.na_key_serv)
      Eliom_lib.leftright Ocsigen_cache.Dlist.node;
  }
  and sitedata = {
    site_dir : Eliom_lib.Url.path;
    site_dir_string : string;
    config_info : Ocsigen_extensions.config_info;
    default_links_xhr : bool Eliom_common.tenable_value;
    mutable servtimeout :
      (float option * bool) option * (float option * bool) option *
      (Eliom_common.fullsessionname * (float option * bool)) list;
    mutable datatimeout :
      (float option * bool) option * (float option * bool) option *
      (Eliom_common.fullsessionname * (float option * bool)) list;
    mutable perstimeout :
      (float option * bool) option * (float option * bool) option *
      (Eliom_common.fullsessionname * (float option * bool)) list;
    site_value_table : Polytables.t;
    mutable registered_scope_names : Eliom_lib.String.Set.t;
    global_services : Eliom_common.tables;
    session_services : Eliom_common.tables Eliom_common.servicecookiestable;
    session_data : Eliom_common.datacookiestable;
    group_of_groups :
      [ `Session_group ] Eliom_common.sessgrp Ocsigen_cache.Dlist.t;
    mutable remove_session_data : string -> unit;
    mutable not_bound_in_data_tables : string -> bool;
    mutable exn_handler : exn -> Ocsigen_http_frame.result Lwt.t;
    mutable unregistered_services : Eliom_lib.Url.path list;
    mutable unregistered_na_services : Eliom_common.na_key_serv list;
    mutable max_volatile_data_sessions_per_group : int * bool;
    mutable max_volatile_data_sessions_per_subnet : int * bool;
    mutable max_volatile_data_tab_sessions_per_group : int * bool;
    mutable max_service_sessions_per_group : int * bool;
    mutable max_service_sessions_per_subnet : int * bool;
    mutable max_service_tab_sessions_per_group : int * bool;
    mutable max_persistent_data_sessions_per_group : int option * bool;
    mutable max_persistent_data_tab_sessions_per_group : int option * bool;
    mutable max_anonymous_services_per_session : int * bool;
    mutable max_anonymous_services_per_subnet : int * bool;
    dlist_ip_table : Eliom_common.dlist_ip_table;
    mutable ipv4mask : int32 option * bool;
    mutable ipv6mask : (int64 * int64) option * bool;
  }
  type 'a lazy_site_value
  val force_lazy_site_value : 'Eliom_common.lazy_site_value -> 'a
  val lazy_site_value_from_fun :
    (unit -> 'a) -> 'Eliom_common.lazy_site_value
  type info =
      Ocsigen_extensions.request * Eliom_common.sess_info *
      Eliom_common.tables Eliom_common.cookie_info *
      Eliom_common.tables Eliom_common.cookie_info *
      Ocsigen_cookies.cookieset
  exception Eliom_retry_with of Eliom_common.info
  val make_server_params :
    Eliom_common.sitedata ->
    Eliom_common.info ->
    Eliom_lib.Url.path option ->
    Eliom_common.fullsessionname option -> Eliom_common.server_params
  val empty_page_table : unit -> Eliom_common.page_table
  val empty_dircontent : unit -> Eliom_common.dircontent
  val empty_naservice_table : unit -> Eliom_common.naservice_table
  val service_tables_are_empty : Eliom_common.tables -> bool
  val empty_tables : int -> bool -> Eliom_common.tables
  val new_service_session_tables :
    Eliom_common.sitedata -> Eliom_common.tables
  val split_prefix_param :
    string -> (string * 'a) list -> (string * 'a) list * (string * 'a) list
  val get_session_info :
    Ocsigen_extensions.request ->
    int ->
    (Ocsigen_extensions.request * Eliom_common.sess_info *
     (Eliom_common.tables Eliom_common.cookie_info *
      Ocsigen_cookies.cookieset)
     option)
    Lwt.t
  type ('a, 'b) foundornot = Found of '| Notfound of 'b
  val make_full_cookie_name : string -> string -> string
  val make_fullsessname :
    sp:Eliom_common.server_params ->
    [< Eliom_common.user_scope ] -> Eliom_common.fullsessionname
  val make_fullsessname2 :
    string -> [< Eliom_common.user_scope ] -> Eliom_common.fullsessionname
  module Perstables :
    sig
      val empty : 'a list
      val add : '-> 'a list -> 'a list
      val fold : ('-> '-> 'a) -> '-> 'b list -> 'a
    end
  val perstables : string list Pervasives.ref
  val create_persistent_table : string -> 'Ocsipersist.table
  val persistent_cookies_table :
    (Eliom_common.fullsessionname * float option * Eliom_common.timeout *
     Eliom_common.perssessgrp option)
    Ocsipersist.table Lazy.t
  val remove_from_all_persistent_tables : string -> unit Lwt.t
  val absolute_change_sitedata : Eliom_common.sitedata -> unit
  val get_current_sitedata : unit -> Eliom_common.sitedata
  val end_current_sitedata : unit -> unit
  val add_unregistered : Eliom_common.sitedata -> Eliom_lib.Url.path -> unit
  val add_unregistered_na :
    Eliom_common.sitedata -> Eliom_common.na_key_serv -> unit
  val remove_unregistered :
    Eliom_common.sitedata -> Eliom_lib.Url.path -> unit
  val remove_unregistered_na :
    Eliom_common.sitedata -> Eliom_common.na_key_serv -> unit
  val verify_all_registered : Eliom_common.sitedata -> unit
  val during_eliom_module_loading : unit -> bool
  val begin_load_eliom_module : unit -> unit
  val end_load_eliom_module : unit -> unit
  val global_register_allowed :
    unit -> (unit -> Eliom_common.sitedata) option
  val get_site_data : unit -> Eliom_common.sitedata
  val eliom_params_after_action :
    ((string * string) list * (string * string) list option *
     (string * string) list Eliom_lib.String.Table.t *
     (string * string) list Eliom_lib.String.Table.t * (string * string) list)
    Polytables.key
  val att_key_serv_of_req :
    Eliom_common.att_key_req -> Eliom_common.att_key_serv
  val na_key_serv_of_req :
    Eliom_common.na_key_req -> Eliom_common.na_key_serv
  val remove_naservice_table :
    Eliom_common.naservice_table ->
    Eliom_common.NAserv_Table.key -> Eliom_common.naservice_table
  val get_mask4 : Eliom_common.sitedata -> int32
  val get_mask6 : Eliom_common.sitedata -> int64 * int64
  val ipv4mask : int32 Pervasives.ref
  val ipv6mask : (int64 * int64) Pervasives.ref
  val create_dlist_ip_table : int -> Eliom_common.dlist_ip_table
  val find_dlist_ip_table :
    int32 option * '->
    (int64 * int64) option * '->
    Eliom_common.dlist_ip_table ->
    Eliom_lib.Ip_address.t ->
    (Eliom_common.page_table Pervasives.ref * Eliom_common.page_table_key,
     Eliom_common.na_key_serv)
    Eliom_lib.leftright Ocsigen_cache.Dlist.t
  val get_cookie_info :
    Eliom_common.server_params ->
    [< Eliom_common.cookie_scope ] ->
    Eliom_common.tables Eliom_common.cookie_info
  val tab_cookie_action_info_key :
    (Eliom_common.tables Eliom_common.cookie_info *
     Ocsigen_cookies.cookieset * string Ocsigen_cookies.CookiesTable.t)
    Polytables.key
  val sp_key : Eliom_common.server_params Lwt.key
  val get_sp_option : unit -> Eliom_common.server_params option
  val get_sp : unit -> Eliom_common.server_params
  val sp_of_option :
    Eliom_common.server_params option -> Eliom_common.server_params
  val found_stop_key : unit Polytables.key
  type 'a wrapper = 'Eliom_wrap.wrapper
  val make_wrapper : ('-> 'b) -> 'Eliom_common.wrapper
  val empty_wrapper : unit -> 'Eliom_common.wrapper
  type unwrapper = Eliom_wrap.unwrapper
  type unwrap_id = Eliom_wrap.unwrap_id
  val make_unwrapper : Eliom_common.unwrap_id -> Eliom_common.unwrapper
  val empty_unwrapper : Eliom_common.unwrapper
  val react_up_unwrap_id : Eliom_common.unwrap_id
  val react_down_unwrap_id : Eliom_common.unwrap_id
  val signal_down_unwrap_id : Eliom_common.unwrap_id
  val comet_channel_unwrap_id : Eliom_common.unwrap_id
  val bus_unwrap_id : Eliom_common.unwrap_id
  val nl_get_appl_parameter : string
  val patch_request_info :
    Ocsigen_extensions.request -> Ocsigen_extensions.request
end