sig
  exception Eliom_Link_too_old
  exception Eliom_Session_expired
  exception Eliom_Wrong_parameter
  exception Eliom_Typing_Error of (string * exn) list
  val get_config : unit -> Simplexmlparser.xml list
  val sync : ('-> '-> '-> 'd) -> '-> '-> '-> 'Lwt.t
  type suff = [ `WithSuffix | `WithoutSuffix ]
  type servcoserv = [ `Coservice | `Service ]
  type getpost = [ `Get | `Post ]
  type attached_service_kind =
      [ `External | `Internal of Eliom.servcoserv * Eliom.getpost ]
  type get_attached_service_kind =
      [ `External | `Internal of Eliom.servcoserv * [ `Get ] ]
  type post_attached_service_kind =
      [ `External | `Internal of Eliom.servcoserv * [ `Post ] ]
  type internal = [ `Internal of Eliom.servcoserv * Eliom.getpost ]
  type registrable = [ `Registrable | `Unregistrable ]
  type +'a a_s
  type +'a na_s
  type service_kind =
      [ `Attached of Eliom.attached_service_kind Eliom.a_s
      | `Nonattached of Eliom.getpost Eliom.na_s ]
  type get_service_kind =
      [ `Attached of Eliom.get_attached_service_kind Eliom.a_s
      | `Nonattached of [ `Get ] Eliom.na_s ]
  type post_service_kind =
      [ `Attached of Eliom.post_attached_service_kind Eliom.a_s
      | `Nonattached of [ `Post ] Eliom.na_s ]
  type internal_service_kind =
      [ `Attached of Eliom.internal Eliom.a_s
      | `Nonattached of Eliom.getpost Eliom.na_s ]
  type attached = [ `Attached of Eliom.attached_service_kind Eliom.a_s ]
  type nonattached = [ `Nonattached of Eliom.getpost Eliom.na_s ]
  type ('a, 'b, +'c, +'d, +'e, +'f, +'g) service
  type url_path = string list
  val string_of_url_path : Eliom.url_path -> string
  type server_params
  val get_user_agent : Eliom.server_params -> string
  val get_full_url : Eliom.server_params -> string
  val get_ip : Eliom.server_params -> string
  val get_inet_addr : Eliom.server_params -> Unix.inet_addr
  val get_all_get_params : Eliom.server_params -> (string * string) list
  val get_get_params : Eliom.server_params -> (string * string) list
  val get_all_post_params : Eliom.server_params -> (string * string) list
  val get_post_params : Eliom.server_params -> (string * string) list Lwt.t
  val get_current_path_string : Eliom.server_params -> string
  val get_current_path : Eliom.server_params -> Eliom.url_path
  val get_hostname : Eliom.server_params -> string option
  val get_port : Eliom.server_params -> int
  val get_other_get_params : Eliom.server_params -> (string * string) list
  val get_suffix : Eliom.server_params -> Eliom.url_path
  val get_exn : Eliom.server_params -> exn list
  val get_config_file_charset : Eliom.server_params -> string option
  val get_cookies : Eliom.server_params -> (string * string) list
  val set_user_timeout : Eliom.server_params -> float option -> unit
  val unset_user_timeout : Eliom.server_params -> unit
  val get_user_timeout : Eliom.server_params -> float option
  val set_user_persistent_timeout :
    Eliom.server_params -> float option -> unit
  val unset_user_persistent_timeout : Eliom.server_params -> unit
  val get_user_persistent_timeout : Eliom.server_params -> float option
  val set_user_expdate : Eliom.server_params -> float option -> unit
  val get_user_expdate : Eliom.server_params -> float option
  val set_user_persistent_expdate :
    Eliom.server_params -> float option -> unit
  val get_user_persistent_expdate : Eliom.server_params -> float option
  val set_global_timeout : ?sp:Eliom.server_params -> float option -> unit
  val get_global_timeout : ?sp:Eliom.server_params -> unit -> float option
  val get_default_timeout : unit -> float option
  val set_global_persistent_timeout :
    ?sp:Eliom.server_params -> float option -> unit
  val get_global_persistent_timeout :
    ?sp:Eliom.server_params -> unit -> float option
  val get_default_persistent_timeout : unit -> float option
  val set_exn_handler :
    ?sp:Eliom.server_params ->
    (Eliom.server_params -> exn -> Eliommod.result_to_send Lwt.t) -> unit
  val get_tmp_filename : Extensions.file_info -> string
  val get_filesize : Extensions.file_info -> int64
  val get_original_filename : Extensions.file_info -> string
  type ('a, 'b) binsum = Inj1 of '| Inj2 of 'b
  type 'a param_name
  type ('a, 'b, 'c) params_type
  type 'a listnames = {
    it : ''c. ('-> '-> 'c list) -> 'b list -> 'c list -> 'c list;
  }
  val int :
    string ->
    (int, [ `WithoutSuffix ], int Eliom.param_name) Eliom.params_type
  val float :
    string ->
    (float, [ `WithoutSuffix ], float Eliom.param_name) Eliom.params_type
  val string :
    string ->
    (string, [ `WithoutSuffix ], string Eliom.param_name) Eliom.params_type
  val bool :
    string ->
    (bool, [ `WithoutSuffix ], bool Eliom.param_name) Eliom.params_type
  val file :
    string ->
    (Extensions.file_info, [ `WithoutSuffix ],
     Extensions.file_info Eliom.param_name)
    Eliom.params_type
  val radio_answer :
    string ->
    (string option, [ `WithoutSuffix ], string option Eliom.param_name)
    Eliom.params_type
  val unit :
    (unit, [ `WithoutSuffix ], unit Eliom.param_name) Eliom.params_type
  val user_type :
    (string -> 'a) ->
    ('-> string) ->
    string -> ('a, [ `WithoutSuffix ], 'Eliom.param_name) Eliom.params_type
  val sum :
    ('a, [ `WithoutSuffix ], 'b) Eliom.params_type ->
    ('a, [ `WithoutSuffix ], 'b) Eliom.params_type ->
    (('a, 'a) Eliom.binsum, [ `WithoutSuffix ], 'b * 'b) Eliom.params_type
  val prod :
    ('a, [ `WithoutSuffix ], 'b) Eliom.params_type ->
    ('c, [ `Endsuffix | `WithoutSuffix ], 'd) Eliom.params_type ->
    ('a * 'c, [ `WithoutSuffix ], 'b * 'd) Eliom.params_type
  val opt :
    ('a, [ `WithoutSuffix ], 'b) Eliom.params_type ->
    ('a option, [ `WithoutSuffix ], 'b) Eliom.params_type
  val list :
    string ->
    ('a, [ `WithoutSuffix ], 'b) Eliom.params_type ->
    ('a list, [ `WithoutSuffix ], 'Eliom.listnames) Eliom.params_type
  val ( ** ) :
    ('a, [ `WithoutSuffix ], 'b) Eliom.params_type ->
    ('c, [< `Endsuffix | `WithoutSuffix ], 'd) Eliom.params_type ->
    ('a * 'c, [ `WithoutSuffix ], 'b * 'd) Eliom.params_type
  val regexp :
    Netstring_pcre.regexp ->
    string ->
    string ->
    (string, [ `WithoutSuffix ], string Eliom.param_name) Eliom.params_type
  val suffix :
    ('a, [< `Endsuffix | `WithoutSuffix ], 'b) Eliom.params_type ->
    ('a, [ `WithSuffix ], 'b) Eliom.params_type
  val all_suffix :
    string ->
    (string list, [ `Endsuffix ], string list Eliom.param_name)
    Eliom.params_type
  val all_suffix_string :
    string Eliom.param_name ->
    (string, [ `Endsuffix ], string Eliom.param_name) Eliom.params_type
  val all_suffix_user :
    (string -> 'a) ->
    ('-> string) ->
    string -> ('a, [ `Endsuffix ], 'Eliom.param_name) Eliom.params_type
  val all_suffix_regexp :
    Netstring_pcre.regexp ->
    string ->
    string ->
    (string, [ `Endsuffix ], string Eliom.param_name) Eliom.params_type
  val suffix_prod :
    ('a, [< `Endsuffix | `WithoutSuffix ], 'b) Eliom.params_type ->
    ('c, [ `WithoutSuffix ], 'd) Eliom.params_type ->
    ('a * 'c, [ `WithSuffix ], 'b * 'd) Eliom.params_type
  val static_dir :
    Eliom.server_params ->
    (string list, unit,
     [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] Eliom.a_s ],
     [ `WithSuffix ], string list Eliom.param_name, unit Eliom.param_name,
     [> `Unregistrable ])
    Eliom.service
  val new_service :
    ?sp:Eliom.server_params ->
    url:Eliom.url_path ->
    get_params:('a, [< Eliom.suff ] as 'b, 'c) Eliom.params_type ->
    unit ->
    ('a, unit,
     [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] Eliom.a_s ],
     'b, 'c, unit Eliom.param_name, [> `Registrable ])
    Eliom.service
  val new_external_service :
    url:Eliom.url_path ->
    get_params:('a, [< Eliom.suff ] as 'b, 'c) Eliom.params_type ->
    post_params:('d, [ `WithoutSuffix ], 'e) Eliom.params_type ->
    unit ->
    ('a, 'd, [> `Attached of [> `External ] Eliom.a_s ], 'b, 'c, 'e,
     [> `Unregistrable ])
    Eliom.service
  val new_coservice :
    ?max_use:int ->
    ?timeout:float ->
    fallback:(unit, unit,
              [ `Attached of
                  [ `Internal of [ `Service ] * [ `Get ] ] Eliom.a_s ],
              [ `WithoutSuffix ], unit Eliom.param_name,
              unit Eliom.param_name, [< Eliom.registrable ])
             Eliom.service ->
    get_params:('a, [ `WithoutSuffix ], 'b) Eliom.params_type ->
    unit ->
    ('a, unit,
     [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] Eliom.a_s ],
     [ `WithoutSuffix ], 'b, unit Eliom.param_name, [> `Registrable ])
    Eliom.service
  val new_coservice' :
    ?max_use:int ->
    ?timeout:float ->
    get_params:('a, [ `WithoutSuffix ], 'b) Eliom.params_type ->
    unit ->
    ('a, unit, [> `Nonattached of [> `Get ] Eliom.na_s ], [ `WithoutSuffix ],
     'b, unit Eliom.param_name, [> `Registrable ])
    Eliom.service
  val new_post_service :
    ?sp:Eliom.server_params ->
    fallback:('a, unit,
              [ `Attached of
                  [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                  Eliom.a_s ],
              [< Eliom.suff ] as 'b, 'c, unit Eliom.param_name,
              [< `Registrable ])
             Eliom.service ->
    post_params:('d, [ `WithoutSuffix ], 'e) Eliom.params_type ->
    unit ->
    ('a, 'd,
     [> `Attached of
          [> `Internal of [ `Coservice | `Service ] * [> `Post ] ] Eliom.a_s ],
     'b, 'c, 'e, [> `Registrable ])
    Eliom.service
  val new_post_coservice :
    ?max_use:int ->
    ?timeout:float ->
    fallback:('a, unit,
              [ `Attached of
                  [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                  Eliom.a_s ],
              [< Eliom.suff ] as 'b, 'c, unit Eliom.param_name,
              [< `Registrable ])
             Eliom.service ->
    post_params:('d, [ `WithoutSuffix ], 'e) Eliom.params_type ->
    unit ->
    ('a, 'd,
     [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] Eliom.a_s ],
     'b, 'c, 'e, [> `Registrable ])
    Eliom.service
  val new_post_coservice' :
    ?max_use:int ->
    ?timeout:float ->
    post_params:('a, [ `WithoutSuffix ], 'b) Eliom.params_type ->
    unit ->
    (unit, 'a, [> `Nonattached of [> `Post ] Eliom.na_s ],
     [ `WithoutSuffix ], unit Eliom.param_name, 'b, [> `Registrable ])
    Eliom.service
  val preapply :
    ('a, 'b, [> `Attached of 'Eliom.a_s ] as 'c, [< Eliom.suff ], 'e, 'f,
     'g)
    Eliom.service ->
    '->
    (unit, 'b, 'c, [ `WithoutSuffix ], unit Eliom.param_name, 'f,
     [ `Unregistrable ])
    Eliom.service
  val make_string_uri :
    ('a, unit, [< Eliom.get_service_kind ], [< Eliom.suff ], 'b,
     unit Eliom.param_name, [< Eliom.registrable ])
    Eliom.service -> Eliom.server_params -> '-> string
  module type REGCREATE =
    sig
      type page
      val send :
        ?cookies:Extensions.cookieslist ->
        ?charset:string ->
        ?code:int ->
        Eliom.server_params ->
        Eliom.REGCREATE.page -> Eliommod.result_to_send
    end
  module type FORMCREATE =
    sig
      type form_content_elt
      type form_content_elt_list
      type form_elt
      type a_content_elt
      type a_content_elt_list
      type a_elt
      type a_elt_list
      type div_content_elt
      type div_content_elt_list
      type uri
      type link_elt
      type script_elt
      type textarea_elt
      type select_elt
      type input_elt
      type pcdata_elt
      type a_attrib_t
      type form_attrib_t
      type input_attrib_t
      type textarea_attrib_t
      type select_attrib_t
      type link_attrib_t
      type script_attrib_t
      type input_type_t
      val hidden : Eliom.FORMCREATE.input_type_t
      val text : Eliom.FORMCREATE.input_type_t
      val password : Eliom.FORMCREATE.input_type_t
      val checkbox : Eliom.FORMCREATE.input_type_t
      val radio : Eliom.FORMCREATE.input_type_t
      val submit : Eliom.FORMCREATE.input_type_t
      val file : Eliom.FORMCREATE.input_type_t
      val empty_seq : Eliom.FORMCREATE.form_content_elt_list
      val cons_form :
        Eliom.FORMCREATE.form_content_elt ->
        Eliom.FORMCREATE.form_content_elt_list ->
        Eliom.FORMCREATE.form_content_elt_list
      val make_a :
        ?a:Eliom.FORMCREATE.a_attrib_t ->
        href:string ->
        Eliom.FORMCREATE.a_content_elt_list -> Eliom.FORMCREATE.a_elt
      val make_get_form :
        ?a:Eliom.FORMCREATE.form_attrib_t ->
        action:string ->
        Eliom.FORMCREATE.form_content_elt ->
        Eliom.FORMCREATE.form_content_elt_list -> Eliom.FORMCREATE.form_elt
      val make_post_form :
        ?a:Eliom.FORMCREATE.form_attrib_t ->
        action:string ->
        ?id:string ->
        ?inline:bool ->
        Eliom.FORMCREATE.form_content_elt ->
        Eliom.FORMCREATE.form_content_elt_list -> Eliom.FORMCREATE.form_elt
      val make_hidden_field :
        Eliom.FORMCREATE.input_elt -> Eliom.FORMCREATE.form_content_elt
      val remove_first :
        Eliom.FORMCREATE.form_content_elt_list ->
        Eliom.FORMCREATE.form_content_elt *
        Eliom.FORMCREATE.form_content_elt_list
      val make_input :
        ?a:Eliom.FORMCREATE.input_attrib_t ->
        ?checked:bool ->
        typ:Eliom.FORMCREATE.input_type_t ->
        ?name:string -> ?value:string -> unit -> Eliom.FORMCREATE.input_elt
      val make_textarea :
        ?a:Eliom.FORMCREATE.textarea_attrib_t ->
        name:string ->
        rows:int ->
        cols:int ->
        Eliom.FORMCREATE.pcdata_elt -> Eliom.FORMCREATE.textarea_elt
      val make_select :
        ?a:Eliom.FORMCREATE.select_attrib_t ->
        name:string ->
        ?selected:(string option * string) option ->
        string option * string ->
        (string option * string) list -> Eliom.FORMCREATE.select_elt
      val make_div :
        classe:string list ->
        Eliom.FORMCREATE.a_elt -> Eliom.FORMCREATE.form_content_elt
      val make_uri_from_string : string -> Eliom.FORMCREATE.uri
      val make_css_link :
        ?a:Eliom.FORMCREATE.link_attrib_t ->
        Eliom.FORMCREATE.uri -> Eliom.FORMCREATE.link_elt
      val make_js_script :
        ?a:Eliom.FORMCREATE.script_attrib_t ->
        Eliom.FORMCREATE.uri -> Eliom.FORMCREATE.script_elt
    end
  module type ELIOMFORMSIG =
    sig
      type form_content_elt
      type form_content_elt_list
      type form_elt
      type a_content_elt
      type a_content_elt_list
      type a_elt
      type a_elt_list
      type div_content_elt
      type div_content_elt_list
      type uri
      type link_elt
      type script_elt
      type textarea_elt
      type select_elt
      type input_elt
      type pcdata_elt
      type a_attrib_t
      type form_attrib_t
      type input_attrib_t
      type textarea_attrib_t
      type select_attrib_t
      type link_attrib_t
      type script_attrib_t
      type input_type_t
      val a :
        ?a:Eliom.ELIOMFORMSIG.a_attrib_t ->
        ('a, unit, [< Eliom.get_service_kind ], [< Eliom.suff ], 'b,
         unit Eliom.param_name, [< Eliom.registrable ])
        Eliom.service ->
        Eliom.server_params ->
        Eliom.ELIOMFORMSIG.a_content_elt_list ->
        '-> Eliom.ELIOMFORMSIG.a_elt
      val get_form :
        ?a:Eliom.ELIOMFORMSIG.form_attrib_t ->
        ('a, unit, [< Eliom.get_service_kind ], [< Eliom.suff ], 'b,
         unit Eliom.param_name, [< Eliom.registrable ])
        Eliom.service ->
        Eliom.server_params ->
        ('-> Eliom.ELIOMFORMSIG.form_content_elt_list) ->
        Eliom.ELIOMFORMSIG.form_elt
      val post_form :
        ?a:Eliom.ELIOMFORMSIG.form_attrib_t ->
        ('a, 'b, [< Eliom.post_service_kind ], [< Eliom.suff ], 'c, 'd,
         [< Eliom.registrable ])
        Eliom.service ->
        Eliom.server_params ->
        ('-> Eliom.ELIOMFORMSIG.form_content_elt_list) ->
        '-> Eliom.ELIOMFORMSIG.form_elt
      val make_uri :
        ('a, unit, [< Eliom.get_service_kind ], [< Eliom.suff ], 'b,
         unit Eliom.param_name, [< Eliom.registrable ])
        Eliom.service -> Eliom.server_params -> '-> Eliom.ELIOMFORMSIG.uri
      val js_script :
        ?a:Eliom.ELIOMFORMSIG.script_attrib_t ->
        Eliom.ELIOMFORMSIG.uri -> Eliom.ELIOMFORMSIG.script_elt
      val css_link :
        ?a:Eliom.ELIOMFORMSIG.link_attrib_t ->
        Eliom.ELIOMFORMSIG.uri -> Eliom.ELIOMFORMSIG.link_elt
      val int_input :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        ?value:int -> int Eliom.param_name -> Eliom.ELIOMFORMSIG.input_elt
      val float_input :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        ?value:float ->
        float Eliom.param_name -> Eliom.ELIOMFORMSIG.input_elt
      val string_input :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        ?value:string ->
        string Eliom.param_name -> Eliom.ELIOMFORMSIG.input_elt
      val user_type_input :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        ?value:'->
        ('-> string) -> 'Eliom.param_name -> Eliom.ELIOMFORMSIG.input_elt
      val int_password_input :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        ?value:int -> int Eliom.param_name -> Eliom.ELIOMFORMSIG.input_elt
      val float_password_input :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        ?value:float ->
        float Eliom.param_name -> Eliom.ELIOMFORMSIG.input_elt
      val string_password_input :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        ?value:string ->
        string Eliom.param_name -> Eliom.ELIOMFORMSIG.input_elt
      val user_type_password_input :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        ?value:'->
        ('-> string) -> 'Eliom.param_name -> Eliom.ELIOMFORMSIG.input_elt
      val hidden_int_input :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        int Eliom.param_name -> int -> Eliom.ELIOMFORMSIG.input_elt
      val hidden_float_input :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        float Eliom.param_name -> float -> Eliom.ELIOMFORMSIG.input_elt
      val hidden_string_input :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        string Eliom.param_name -> string -> Eliom.ELIOMFORMSIG.input_elt
      val hidden_user_type_input :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        ('-> string) ->
        'Eliom.param_name -> '-> Eliom.ELIOMFORMSIG.input_elt
      val bool_checkbox :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        ?checked:bool ->
        bool Eliom.param_name -> Eliom.ELIOMFORMSIG.input_elt
      val string_radio :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        ?checked:bool ->
        string option Eliom.param_name ->
        string -> Eliom.ELIOMFORMSIG.input_elt
      val int_radio :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        ?checked:bool ->
        int option Eliom.param_name -> int -> Eliom.ELIOMFORMSIG.input_elt
      val float_radio :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        ?checked:bool ->
        float option Eliom.param_name ->
        float -> Eliom.ELIOMFORMSIG.input_elt
      val user_type_radio :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        ?checked:bool ->
        ('-> string) ->
        'a option Eliom.param_name -> '-> Eliom.ELIOMFORMSIG.input_elt
      val textarea :
        ?a:Eliom.ELIOMFORMSIG.textarea_attrib_t ->
        string Eliom.param_name ->
        rows:int ->
        cols:int ->
        Eliom.ELIOMFORMSIG.pcdata_elt -> Eliom.ELIOMFORMSIG.textarea_elt
      val select :
        ?a:Eliom.ELIOMFORMSIG.select_attrib_t ->
        ?selected:(string option * string) option ->
        string option * string ->
        (string option * string) list ->
        string Eliom.param_name -> Eliom.ELIOMFORMSIG.select_elt
      val submit_input :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        string -> Eliom.ELIOMFORMSIG.input_elt
      val file_input :
        ?a:Eliom.ELIOMFORMSIG.input_attrib_t ->
        ?value:string ->
        Extensions.file_info Eliom.param_name -> Eliom.ELIOMFORMSIG.input_elt
    end
  module type ELIOMREGSIG1 =
    sig
      type page
      val send :
        ?cookies:Extensions.cookieslist ->
        ?charset:string ->
        ?code:int ->
        Eliom.server_params ->
        Eliom.ELIOMREGSIG1.page -> Eliommod.result_to_send
      val register :
        ?sp:Eliom.server_params ->
        service:('a, 'b, [< Eliom.internal_service_kind ], [< Eliom.suff ],
                 'c, 'd, [ `Registrable ])
                Eliom.service ->
        ?error_handler:(Eliom.server_params ->
                        (string * exn) list -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        (Eliom.server_params -> '-> '-> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        unit
      val register_for_session :
        Eliom.server_params ->
        service:('a, 'b, [< Eliom.internal_service_kind ], [< Eliom.suff ],
                 'c, 'd, [ `Registrable ])
                Eliom.service ->
        ?error_handler:(Eliom.server_params ->
                        (string * exn) list -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        (Eliom.server_params -> '-> '-> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        unit
      val register_new_service :
        ?sp:Eliom.server_params ->
        url:Eliom.url_path ->
        get_params:('a, [< Eliom.suff ] as 'b, 'c) Eliom.params_type ->
        ?error_handler:(Eliom.server_params ->
                        (string * exn) list -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        (Eliom.server_params -> '-> unit -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Service ] * [> `Get ] ] Eliom.a_s ],
         'b, 'c, unit Eliom.param_name, [> `Registrable ])
        Eliom.service
      val register_new_coservice :
        ?sp:Eliom.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ] Eliom.a_s ],
                  [ `WithoutSuffix ], unit Eliom.param_name,
                  unit Eliom.param_name, [< Eliom.registrable ])
                 Eliom.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom.params_type ->
        ?error_handler:(Eliom.server_params ->
                        (string * exn) list -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        (Eliom.server_params -> '-> unit -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ] Eliom.a_s ],
         [ `WithoutSuffix ], 'b, unit Eliom.param_name, [> `Registrable ])
        Eliom.service
      val register_new_coservice' :
        ?sp:Eliom.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom.params_type ->
        ?error_handler:(Eliom.server_params ->
                        (string * exn) list -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        (Eliom.server_params -> '-> unit -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom.na_s ],
         [ `WithoutSuffix ], 'b, unit Eliom.param_name, [> `Registrable ])
        Eliom.service
      val register_new_coservice_for_session :
        Eliom.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of
                      [ `Internal of [ `Service ] * [ `Get ] ] Eliom.a_s ],
                  [ `WithoutSuffix ], unit Eliom.param_name,
                  unit Eliom.param_name, [< Eliom.registrable ])
                 Eliom.service ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom.params_type ->
        ?error_handler:(Eliom.server_params ->
                        (string * exn) list -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        (Eliom.server_params -> '-> unit -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        ('a, unit,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Get ] ] Eliom.a_s ],
         [ `WithoutSuffix ], 'b, unit Eliom.param_name, [> `Registrable ])
        Eliom.service
      val register_new_coservice_for_session' :
        Eliom.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) Eliom.params_type ->
        ?error_handler:(Eliom.server_params ->
                        (string * exn) list -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        (Eliom.server_params -> '-> unit -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] Eliom.na_s ],
         [ `WithoutSuffix ], 'b, unit Eliom.param_name, [> `Registrable ])
        Eliom.service
      val register_new_post_service :
        ?sp:Eliom.server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      Eliom.a_s ],
                  [< Eliom.suff ] as 'b, 'c, unit Eliom.param_name,
                  [< `Registrable ])
                 Eliom.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom.params_type ->
        ?error_handler:(Eliom.server_params ->
                        (string * exn) list -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        (Eliom.server_params -> '-> '-> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
              Eliom.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom.service
      val register_new_post_coservice :
        ?sp:Eliom.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      Eliom.a_s ],
                  [< Eliom.suff ] as 'b, 'c, unit Eliom.param_name,
                  [< `Registrable ])
                 Eliom.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom.params_type ->
        ?error_handler:(Eliom.server_params ->
                        (string * exn) list -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        (Eliom.server_params -> '-> '-> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ] Eliom.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom.service
      val register_new_post_coservice' :
        ?sp:Eliom.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom.params_type ->
        ?error_handler:(Eliom.server_params ->
                        (string * exn) list -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        (Eliom.server_params -> unit -> '-> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom.na_s ],
         [ `WithoutSuffix ], unit Eliom.param_name, 'b, [> `Registrable ])
        Eliom.service
      val register_new_post_coservice_for_session :
        Eliom.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [< `Attached of
                       [< `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                       Eliom.a_s ],
                  [< Eliom.suff ] as 'b, 'c, unit Eliom.param_name,
                  [< `Registrable ])
                 Eliom.service ->
        post_params:('d, [ `WithoutSuffix ], 'e) Eliom.params_type ->
        ?error_handler:(Eliom.server_params ->
                        (string * exn) list -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        (Eliom.server_params -> '-> '-> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [> `Coservice ] * [> `Post ] ] Eliom.a_s ],
         'b, 'c, 'e, [> `Registrable ])
        Eliom.service
      val register_new_post_coservice_for_session' :
        Eliom.server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) Eliom.params_type ->
        ?error_handler:(Eliom.server_params ->
                        (string * exn) list -> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        (Eliom.server_params -> unit -> '-> Eliom.ELIOMREGSIG1.page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] Eliom.na_s ],
         [ `WithoutSuffix ], unit Eliom.param_name, 'b, [> `Registrable ])
        Eliom.service
    end
  module type ELIOMREGSIG =
    sig
      type page
      val send :
        ?cookies:Extensions.cookieslist ->
        ?charset:string ->
        ?code:int -> server_params -> page -> Eliommod.result_to_send
      val register :
        ?sp:server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?sp:server_params ->
        url:url_path ->
        get_params:('a, [< suff ] as 'b, 'c) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
         'b, 'c, unit param_name, [> `Registrable ])
        service
      val register_new_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_post_service :
        ?sp:server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      val register_new_post_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [< `Attached of
                       [< `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                       a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      module Cookies :
        sig
          type page = page * Extensions.cookieslist
          val send :
            ?cookies:Extensions.cookieslist ->
            ?charset:string ->
            ?code:int -> server_params -> page -> Eliommod.result_to_send
          val register :
            ?sp:server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?sp:server_params ->
            url:url_path ->
            get_params:('a, [< suff ] as 'b, 'c) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
             'b, 'c, unit param_name, [> `Registrable ])
            service
          val register_new_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_post_service :
            ?sp:server_params ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
          val register_new_post_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [< `Attached of
                           [< `Internal of
                                [< `Coservice | `Service ] * [ `Get ] ]
                           a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
        end
    end
  module type ELIOMSIG =
    sig
      type page
      val send :
        ?cookies:Extensions.cookieslist ->
        ?charset:string ->
        ?code:int -> server_params -> page -> Eliommod.result_to_send
      val register :
        ?sp:server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?sp:server_params ->
        url:url_path ->
        get_params:('a, [< suff ] as 'b, 'c) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
         'b, 'c, unit param_name, [> `Registrable ])
        service
      val register_new_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_post_service :
        ?sp:server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      val register_new_post_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [< `Attached of
                       [< `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                       a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      module Cookies :
        sig
          type page = page * Extensions.cookieslist
          val send :
            ?cookies:Extensions.cookieslist ->
            ?charset:string ->
            ?code:int -> server_params -> page -> Eliommod.result_to_send
          val register :
            ?sp:server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?sp:server_params ->
            url:url_path ->
            get_params:('a, [< suff ] as 'b, 'c) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
             'b, 'c, unit param_name, [> `Registrable ])
            service
          val register_new_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_post_service :
            ?sp:server_params ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
          val register_new_post_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [< `Attached of
                           [< `Internal of
                                [< `Coservice | `Service ] * [ `Get ] ]
                           a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
        end
      type form_content_elt
      type form_content_elt_list
      type form_elt
      type a_content_elt
      type a_content_elt_list
      type a_elt
      type a_elt_list
      type div_content_elt
      type div_content_elt_list
      type uri
      type link_elt
      type script_elt
      type textarea_elt
      type select_elt
      type input_elt
      type pcdata_elt
      type a_attrib_t
      type form_attrib_t
      type input_attrib_t
      type textarea_attrib_t
      type select_attrib_t
      type link_attrib_t
      type script_attrib_t
      type input_type_t
      val a :
        ?a:a_attrib_t ->
        ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
         [< registrable ])
        service -> server_params -> a_content_elt_list -> '-> a_elt
      val get_form :
        ?a:form_attrib_t ->
        ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
         [< registrable ])
        service -> server_params -> ('-> form_content_elt_list) -> form_elt
      val post_form :
        ?a:form_attrib_t ->
        ('a, 'b, [< post_service_kind ], [< suff ], 'c, 'd, [< registrable ])
        service ->
        server_params -> ('-> form_content_elt_list) -> '-> form_elt
      val make_uri :
        ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
         [< registrable ])
        service -> server_params -> '-> uri
      val js_script : ?a:script_attrib_t -> uri -> script_elt
      val css_link : ?a:link_attrib_t -> uri -> link_elt
      val int_input :
        ?a:input_attrib_t -> ?value:int -> int param_name -> input_elt
      val float_input :
        ?a:input_attrib_t -> ?value:float -> float param_name -> input_elt
      val string_input :
        ?a:input_attrib_t -> ?value:string -> string param_name -> input_elt
      val user_type_input :
        ?a:input_attrib_t ->
        ?value:'-> ('-> string) -> 'a param_name -> input_elt
      val int_password_input :
        ?a:input_attrib_t -> ?value:int -> int param_name -> input_elt
      val float_password_input :
        ?a:input_attrib_t -> ?value:float -> float param_name -> input_elt
      val string_password_input :
        ?a:input_attrib_t -> ?value:string -> string param_name -> input_elt
      val user_type_password_input :
        ?a:input_attrib_t ->
        ?value:'-> ('-> string) -> 'a param_name -> input_elt
      val hidden_int_input :
        ?a:input_attrib_t -> int param_name -> int -> input_elt
      val hidden_float_input :
        ?a:input_attrib_t -> float param_name -> float -> input_elt
      val hidden_string_input :
        ?a:input_attrib_t -> string param_name -> string -> input_elt
      val hidden_user_type_input :
        ?a:input_attrib_t ->
        ('-> string) -> 'a param_name -> '-> input_elt
      val bool_checkbox :
        ?a:input_attrib_t -> ?checked:bool -> bool param_name -> input_elt
      val string_radio :
        ?a:input_attrib_t ->
        ?checked:bool -> string option param_name -> string -> input_elt
      val int_radio :
        ?a:input_attrib_t ->
        ?checked:bool -> int option param_name -> int -> input_elt
      val float_radio :
        ?a:input_attrib_t ->
        ?checked:bool -> float option param_name -> float -> input_elt
      val user_type_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        ('-> string) -> 'a option param_name -> '-> input_elt
      val textarea :
        ?a:textarea_attrib_t ->
        string param_name ->
        rows:int -> cols:int -> pcdata_elt -> textarea_elt
      val select :
        ?a:select_attrib_t ->
        ?selected:(string option * string) option ->
        string option * string ->
        (string option * string) list -> string param_name -> select_elt
      val submit_input : ?a:input_attrib_t -> string -> input_elt
      val file_input :
        ?a:input_attrib_t ->
        ?value:string -> Extensions.file_info param_name -> input_elt
    end
  module MakeRegister :
    functor (Pages : REGCREATE->
      sig
        type page = Pages.page
        val send :
          ?cookies:Extensions.cookieslist ->
          ?charset:string ->
          ?code:int -> server_params -> page -> Eliommod.result_to_send
        val register :
          ?sp:server_params ->
          service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                   [ `Registrable ])
                  service ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> '-> page Lwt.t) -> unit
        val register_for_session :
          server_params ->
          service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                   [ `Registrable ])
                  service ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> '-> page Lwt.t) -> unit
        val register_new_service :
          ?sp:server_params ->
          url:url_path ->
          get_params:('a, [< suff ] as 'b, 'c) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit,
           [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
           'b, 'c, unit param_name, [> `Registrable ])
          service
        val register_new_coservice :
          ?sp:server_params ->
          ?max_use:int ->
          ?timeout:float ->
          fallback:(unit, unit,
                    [ `Attached of
                        [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                    [ `WithoutSuffix ], unit param_name, unit param_name,
                    [< registrable ])
                   service ->
          get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit,
           [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
           [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
          service
        val register_new_coservice' :
          ?sp:server_params ->
          ?max_use:int ->
          ?timeout:float ->
          get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
           'b, unit param_name, [> `Registrable ])
          service
        val register_new_coservice_for_session :
          server_params ->
          ?max_use:int ->
          ?timeout:float ->
          fallback:(unit, unit,
                    [ `Attached of
                        [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                    [ `WithoutSuffix ], unit param_name, unit param_name,
                    [< registrable ])
                   service ->
          get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit,
           [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
           [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
          service
        val register_new_coservice_for_session' :
          server_params ->
          ?max_use:int ->
          ?timeout:float ->
          get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
           'b, unit param_name, [> `Registrable ])
          service
        val register_new_post_service :
          ?sp:server_params ->
          fallback:('a, unit,
                    [ `Attached of
                        [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                        a_s ],
                    [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                   service ->
          post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> '-> page Lwt.t) ->
          ('a, 'd,
           [> `Attached of
                [> `Internal of [ `Coservice | `Service ] * [> `Post ] ] a_s ],
           'b, 'c, 'e, [> `Registrable ])
          service
        val register_new_post_coservice :
          ?sp:server_params ->
          ?max_use:int ->
          ?timeout:float ->
          fallback:('a, unit,
                    [ `Attached of
                        [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                        a_s ],
                    [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                   service ->
          post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> '-> page Lwt.t) ->
          ('a, 'd,
           [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
           'b, 'c, 'e, [> `Registrable ])
          service
        val register_new_post_coservice' :
          ?sp:server_params ->
          ?max_use:int ->
          ?timeout:float ->
          post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> unit -> '-> page Lwt.t) ->
          (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
           [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
          service
        val register_new_post_coservice_for_session :
          server_params ->
          ?max_use:int ->
          ?timeout:float ->
          fallback:('a, unit,
                    [< `Attached of
                         [< `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                         a_s ],
                    [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                   service ->
          post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> '-> page Lwt.t) ->
          ('a, 'd,
           [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
           'b, 'c, 'e, [> `Registrable ])
          service
        val register_new_post_coservice_for_session' :
          server_params ->
          ?max_use:int ->
          ?timeout:float ->
          post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> unit -> '-> page Lwt.t) ->
          (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
           [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
          service
        module Cookies :
          sig
            type page = page * Extensions.cookieslist
            val send :
              ?cookies:Extensions.cookieslist ->
              ?charset:string ->
              ?code:int -> server_params -> page -> Eliommod.result_to_send
            val register :
              ?sp:server_params ->
              service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                       [ `Registrable ])
                      service ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> '-> page Lwt.t) -> unit
            val register_for_session :
              server_params ->
              service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                       [ `Registrable ])
                      service ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> '-> page Lwt.t) -> unit
            val register_new_service :
              ?sp:server_params ->
              url:url_path ->
              get_params:('a, [< suff ] as 'b, 'c) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> unit -> page Lwt.t) ->
              ('a, unit,
               [> `Attached of
                    [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
               'b, 'c, unit param_name, [> `Registrable ])
              service
            val register_new_coservice :
              ?sp:server_params ->
              ?max_use:int ->
              ?timeout:float ->
              fallback:(unit, unit,
                        [ `Attached of
                            [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                        [ `WithoutSuffix ], unit param_name, unit param_name,
                        [< registrable ])
                       service ->
              get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> unit -> page Lwt.t) ->
              ('a, unit,
               [> `Attached of
                    [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
               [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
              service
            val register_new_coservice' :
              ?sp:server_params ->
              ?max_use:int ->
              ?timeout:float ->
              get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> unit -> page Lwt.t) ->
              ('a, unit, [> `Nonattached of [> `Get ] na_s ],
               [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
              service
            val register_new_coservice_for_session :
              server_params ->
              ?max_use:int ->
              ?timeout:float ->
              fallback:(unit, unit,
                        [ `Attached of
                            [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                        [ `WithoutSuffix ], unit param_name, unit param_name,
                        [< registrable ])
                       service ->
              get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> unit -> page Lwt.t) ->
              ('a, unit,
               [> `Attached of
                    [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
               [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
              service
            val register_new_coservice_for_session' :
              server_params ->
              ?max_use:int ->
              ?timeout:float ->
              get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> unit -> page Lwt.t) ->
              ('a, unit, [> `Nonattached of [> `Get ] na_s ],
               [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
              service
            val register_new_post_service :
              ?sp:server_params ->
              fallback:('a, unit,
                        [ `Attached of
                            [ `Internal of
                                [ `Coservice | `Service ] * [ `Get ] ]
                            a_s ],
                        [< suff ] as 'b, 'c, unit param_name,
                        [< `Registrable ])
                       service ->
              post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> '-> page Lwt.t) ->
              ('a, 'd,
               [> `Attached of
                    [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                    a_s ],
               'b, 'c, 'e, [> `Registrable ])
              service
            val register_new_post_coservice :
              ?sp:server_params ->
              ?max_use:int ->
              ?timeout:float ->
              fallback:('a, unit,
                        [ `Attached of
                            [ `Internal of
                                [< `Coservice | `Service ] * [ `Get ] ]
                            a_s ],
                        [< suff ] as 'b, 'c, unit param_name,
                        [< `Registrable ])
                       service ->
              post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> '-> page Lwt.t) ->
              ('a, 'd,
               [> `Attached of
                    [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
               'b, 'c, 'e, [> `Registrable ])
              service
            val register_new_post_coservice' :
              ?sp:server_params ->
              ?max_use:int ->
              ?timeout:float ->
              post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> unit -> '-> page Lwt.t) ->
              (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
               [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
              service
            val register_new_post_coservice_for_session :
              server_params ->
              ?max_use:int ->
              ?timeout:float ->
              fallback:('a, unit,
                        [< `Attached of
                             [< `Internal of
                                  [< `Coservice | `Service ] * [ `Get ] ]
                             a_s ],
                        [< suff ] as 'b, 'c, unit param_name,
                        [< `Registrable ])
                       service ->
              post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> '-> page Lwt.t) ->
              ('a, 'd,
               [> `Attached of
                    [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
               'b, 'c, 'e, [> `Registrable ])
              service
            val register_new_post_coservice_for_session' :
              server_params ->
              ?max_use:int ->
              ?timeout:float ->
              post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> unit -> '-> page Lwt.t) ->
              (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
               [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
              service
          end
      end
  module MakeForms :
    functor (Pages : FORMCREATE->
      sig
        type form_content_elt = Pages.form_content_elt
        type form_content_elt_list = Pages.form_content_elt_list
        type form_elt = Pages.form_elt
        type a_content_elt = Pages.a_content_elt
        type a_content_elt_list = Pages.a_content_elt_list
        type a_elt = Pages.a_elt
        type a_elt_list = Pages.a_elt_list
        type div_content_elt = Pages.div_content_elt
        type div_content_elt_list = Pages.div_content_elt_list
        type uri = Pages.uri
        type link_elt = Pages.link_elt
        type script_elt = Pages.script_elt
        type textarea_elt = Pages.textarea_elt
        type select_elt = Pages.select_elt
        type input_elt = Pages.input_elt
        type pcdata_elt = Pages.pcdata_elt
        type a_attrib_t = Pages.a_attrib_t
        type form_attrib_t = Pages.form_attrib_t
        type input_attrib_t = Pages.input_attrib_t
        type textarea_attrib_t = Pages.textarea_attrib_t
        type select_attrib_t = Pages.select_attrib_t
        type link_attrib_t = Pages.link_attrib_t
        type script_attrib_t = Pages.script_attrib_t
        type input_type_t = Pages.input_type_t
        val a :
          ?a:a_attrib_t ->
          ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
           [< registrable ])
          service -> server_params -> a_content_elt_list -> '-> a_elt
        val get_form :
          ?a:form_attrib_t ->
          ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
           [< registrable ])
          service ->
          server_params -> ('-> form_content_elt_list) -> form_elt
        val post_form :
          ?a:form_attrib_t ->
          ('a, 'b, [< post_service_kind ], [< suff ], 'c, 'd,
           [< registrable ])
          service ->
          server_params -> ('-> form_content_elt_list) -> '-> form_elt
        val make_uri :
          ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
           [< registrable ])
          service -> server_params -> '-> uri
        val js_script : ?a:script_attrib_t -> uri -> script_elt
        val css_link : ?a:link_attrib_t -> uri -> link_elt
        val int_input :
          ?a:input_attrib_t -> ?value:int -> int param_name -> input_elt
        val float_input :
          ?a:input_attrib_t -> ?value:float -> float param_name -> input_elt
        val string_input :
          ?a:input_attrib_t ->
          ?value:string -> string param_name -> input_elt
        val user_type_input :
          ?a:input_attrib_t ->
          ?value:'-> ('-> string) -> 'a param_name -> input_elt
        val int_password_input :
          ?a:input_attrib_t -> ?value:int -> int param_name -> input_elt
        val float_password_input :
          ?a:input_attrib_t -> ?value:float -> float param_name -> input_elt
        val string_password_input :
          ?a:input_attrib_t ->
          ?value:string -> string param_name -> input_elt
        val user_type_password_input :
          ?a:input_attrib_t ->
          ?value:'-> ('-> string) -> 'a param_name -> input_elt
        val hidden_int_input :
          ?a:input_attrib_t -> int param_name -> int -> input_elt
        val hidden_float_input :
          ?a:input_attrib_t -> float param_name -> float -> input_elt
        val hidden_string_input :
          ?a:input_attrib_t -> string param_name -> string -> input_elt
        val hidden_user_type_input :
          ?a:input_attrib_t ->
          ('-> string) -> 'a param_name -> '-> input_elt
        val bool_checkbox :
          ?a:input_attrib_t -> ?checked:bool -> bool param_name -> input_elt
        val string_radio :
          ?a:input_attrib_t ->
          ?checked:bool -> string option param_name -> string -> input_elt
        val int_radio :
          ?a:input_attrib_t ->
          ?checked:bool -> int option param_name -> int -> input_elt
        val float_radio :
          ?a:input_attrib_t ->
          ?checked:bool -> float option param_name -> float -> input_elt
        val user_type_radio :
          ?a:input_attrib_t ->
          ?checked:bool ->
          ('-> string) -> 'a option param_name -> '-> input_elt
        val textarea :
          ?a:textarea_attrib_t ->
          string param_name ->
          rows:int -> cols:int -> pcdata_elt -> textarea_elt
        val select :
          ?a:select_attrib_t ->
          ?selected:(string option * string) option ->
          string option * string ->
          (string option * string) list -> string param_name -> select_elt
        val submit_input : ?a:input_attrib_t -> string -> input_elt
        val file_input :
          ?a:input_attrib_t ->
          ?value:string -> Extensions.file_info param_name -> input_elt
      end
  module type XHTMLFORMSSIG =
    sig
      val a :
        ?a:Xhtmltypes.a_attrib XHTML.M.attrib list ->
        ('a, unit, [< Eliom.get_service_kind ], [< Eliom.suff ], 'b,
         unit Eliom.param_name, [< Eliom.registrable ])
        Eliom.service ->
        Eliom.server_params ->
        Xhtmltypes.a_content XHTML.M.elt list ->
        '-> [> Xhtmltypes.a ] XHTML.M.elt
      val css_link :
        ?a:Xhtmltypes.link_attrib XHTML.M.attrib list ->
        XHTML.M.uri -> [> Xhtmltypes.link ] XHTML.M.elt
      val js_script :
        ?a:Xhtmltypes.script_attrib XHTML.M.attrib list ->
        XHTML.M.uri -> [> Xhtmltypes.script ] XHTML.M.elt
      val make_uri :
        ('a, unit, [< Eliom.get_service_kind ], [< Eliom.suff ], 'b,
         unit Eliom.param_name, [< Eliom.registrable ])
        Eliom.service -> Eliom.server_params -> '-> XHTML.M.uri
      val get_form :
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        ('a, unit, [< Eliom.get_service_kind ], [< Eliom.suff ], 'b,
         unit Eliom.param_name, [< Eliom.registrable ])
        Eliom.service ->
        Eliom.server_params ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        [> Xhtmltypes.form ] XHTML.M.elt
      val post_form :
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        ('a, 'b, [< Eliom.post_service_kind ], [< Eliom.suff ], 'c, 'd,
         [< Eliom.registrable ])
        Eliom.service ->
        Eliom.server_params ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        '-> [> Xhtmltypes.form ] XHTML.M.elt
      val int_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:int ->
        int Eliom.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:float ->
        float Eliom.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:string ->
        string Eliom.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:'->
        ('-> string) ->
        'Eliom.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_password_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:int ->
        int Eliom.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_password_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:float ->
        float Eliom.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_password_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:string ->
        string Eliom.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_password_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:'->
        ('-> string) ->
        'Eliom.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val hidden_int_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        int Eliom.param_name -> int -> [> Xhtmltypes.input ] XHTML.M.elt
      val hidden_float_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        float Eliom.param_name -> float -> [> Xhtmltypes.input ] XHTML.M.elt
      val hidden_string_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        string Eliom.param_name ->
        string -> [> Xhtmltypes.input ] XHTML.M.elt
      val hidden_user_type_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ('-> string) ->
        'Eliom.param_name -> '-> [> Xhtmltypes.input ] XHTML.M.elt
      val bool_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        bool Eliom.param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        string option Eliom.param_name ->
        string -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        int option Eliom.param_name ->
        int -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        float option Eliom.param_name ->
        float -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        ('-> string) ->
        'a option Eliom.param_name -> '-> [> Xhtmltypes.input ] XHTML.M.elt
      val textarea :
        ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
        string Eliom.param_name ->
        rows:XHTML.M.number ->
        cols:XHTML.M.number ->
        [ `PCDATA ] XHTML.M.elt -> [> Xhtmltypes.textarea ] XHTML.M.elt
      val select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        ?selected:(string option * string) option ->
        string option * string ->
        (string option * string) list ->
        string Eliom.param_name -> [> Xhtmltypes.select ] XHTML.M.elt
      val submit_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        string -> [> Xhtmltypes.input ] XHTML.M.elt
      val file_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:string ->
        Extensions.file_info Eliom.param_name ->
        [> Xhtmltypes.input ] XHTML.M.elt
    end
  module Xhtml :
    sig
      type page = Xhtmltypes.xhtml XHTML.M.elt
      val send :
        ?cookies:Extensions.cookieslist ->
        ?charset:string ->
        ?code:int -> server_params -> page -> Eliommod.result_to_send
      val register :
        ?sp:server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?sp:server_params ->
        url:url_path ->
        get_params:('a, [< suff ] as 'b, 'c) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
         'b, 'c, unit param_name, [> `Registrable ])
        service
      val register_new_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_post_service :
        ?sp:server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      val register_new_post_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [< `Attached of
                       [< `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                       a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      module Cookies :
        sig
          type page = page * Extensions.cookieslist
          val send :
            ?cookies:Extensions.cookieslist ->
            ?charset:string ->
            ?code:int -> server_params -> page -> Eliommod.result_to_send
          val register :
            ?sp:server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?sp:server_params ->
            url:url_path ->
            get_params:('a, [< suff ] as 'b, 'c) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
             'b, 'c, unit param_name, [> `Registrable ])
            service
          val register_new_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_post_service :
            ?sp:server_params ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
          val register_new_post_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [< `Attached of
                           [< `Internal of
                                [< `Coservice | `Service ] * [ `Get ] ]
                           a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
        end
      val a :
        ?a:Xhtmltypes.a_attrib XHTML.M.attrib list ->
        ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
         [< registrable ])
        service ->
        server_params ->
        Xhtmltypes.a_content XHTML.M.elt list ->
        '-> [> Xhtmltypes.a ] XHTML.M.elt
      val css_link :
        ?a:Xhtmltypes.link_attrib XHTML.M.attrib list ->
        XHTML.M.uri -> [> Xhtmltypes.link ] XHTML.M.elt
      val js_script :
        ?a:Xhtmltypes.script_attrib XHTML.M.attrib list ->
        XHTML.M.uri -> [> Xhtmltypes.script ] XHTML.M.elt
      val make_uri :
        ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
         [< registrable ])
        service -> server_params -> '-> XHTML.M.uri
      val get_form :
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
         [< registrable ])
        service ->
        server_params ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        [> Xhtmltypes.form ] XHTML.M.elt
      val post_form :
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        ('a, 'b, [< post_service_kind ], [< suff ], 'c, 'd, [< registrable ])
        service ->
        server_params ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        '-> [> Xhtmltypes.form ] XHTML.M.elt
      val int_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:int -> int param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:float -> float param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:string ->
        string param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:'->
        ('-> string) -> 'a param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_password_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:int -> int param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_password_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:float -> float param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_password_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:string ->
        string param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_password_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:'->
        ('-> string) -> 'a param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val hidden_int_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        int param_name -> int -> [> Xhtmltypes.input ] XHTML.M.elt
      val hidden_float_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        float param_name -> float -> [> Xhtmltypes.input ] XHTML.M.elt
      val hidden_string_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        string param_name -> string -> [> Xhtmltypes.input ] XHTML.M.elt
      val hidden_user_type_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ('-> string) ->
        'a param_name -> '-> [> Xhtmltypes.input ] XHTML.M.elt
      val bool_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool -> bool param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        string option param_name ->
        string -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        int option param_name -> int -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        float option param_name -> float -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        ('-> string) ->
        'a option param_name -> '-> [> Xhtmltypes.input ] XHTML.M.elt
      val textarea :
        ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
        string param_name ->
        rows:XHTML.M.number ->
        cols:XHTML.M.number ->
        [ `PCDATA ] XHTML.M.elt -> [> Xhtmltypes.textarea ] XHTML.M.elt
      val select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        ?selected:(string option * string) option ->
        string option * string ->
        (string option * string) list ->
        string param_name -> [> Xhtmltypes.select ] XHTML.M.elt
      val submit_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        string -> [> Xhtmltypes.input ] XHTML.M.elt
      val file_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:string ->
        Extensions.file_info param_name -> [> Xhtmltypes.input ] XHTML.M.elt
    end
  module Blocks :
    sig
      type page = Xhtmltypes.body_content XHTML.M.elt list
      val send :
        ?cookies:Extensions.cookieslist ->
        ?charset:string ->
        ?code:int -> server_params -> page -> Eliommod.result_to_send
      val register :
        ?sp:server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?sp:server_params ->
        url:url_path ->
        get_params:('a, [< suff ] as 'b, 'c) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
         'b, 'c, unit param_name, [> `Registrable ])
        service
      val register_new_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_post_service :
        ?sp:server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      val register_new_post_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [< `Attached of
                       [< `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                       a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      module Cookies :
        sig
          type page = page * Extensions.cookieslist
          val send :
            ?cookies:Extensions.cookieslist ->
            ?charset:string ->
            ?code:int -> server_params -> page -> Eliommod.result_to_send
          val register :
            ?sp:server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?sp:server_params ->
            url:url_path ->
            get_params:('a, [< suff ] as 'b, 'c) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
             'b, 'c, unit param_name, [> `Registrable ])
            service
          val register_new_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_post_service :
            ?sp:server_params ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
          val register_new_post_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [< `Attached of
                           [< `Internal of
                                [< `Coservice | `Service ] * [ `Get ] ]
                           a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
        end
      val a :
        ?a:Xhtmltypes.a_attrib XHTML.M.attrib list ->
        ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
         [< registrable ])
        service ->
        server_params ->
        Xhtmltypes.a_content XHTML.M.elt list ->
        '-> [> Xhtmltypes.a ] XHTML.M.elt
      val css_link :
        ?a:Xhtmltypes.link_attrib XHTML.M.attrib list ->
        XHTML.M.uri -> [> Xhtmltypes.link ] XHTML.M.elt
      val js_script :
        ?a:Xhtmltypes.script_attrib XHTML.M.attrib list ->
        XHTML.M.uri -> [> Xhtmltypes.script ] XHTML.M.elt
      val make_uri :
        ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
         [< registrable ])
        service -> server_params -> '-> XHTML.M.uri
      val get_form :
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
         [< registrable ])
        service ->
        server_params ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        [> Xhtmltypes.form ] XHTML.M.elt
      val post_form :
        ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
        ('a, 'b, [< post_service_kind ], [< suff ], 'c, 'd, [< registrable ])
        service ->
        server_params ->
        ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
        '-> [> Xhtmltypes.form ] XHTML.M.elt
      val int_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:int -> int param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:float -> float param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:string ->
        string param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:'->
        ('-> string) -> 'a param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_password_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:int -> int param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_password_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:float -> float param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_password_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:string ->
        string param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_password_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:'->
        ('-> string) -> 'a param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val hidden_int_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        int param_name -> int -> [> Xhtmltypes.input ] XHTML.M.elt
      val hidden_float_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        float param_name -> float -> [> Xhtmltypes.input ] XHTML.M.elt
      val hidden_string_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        string param_name -> string -> [> Xhtmltypes.input ] XHTML.M.elt
      val hidden_user_type_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ('-> string) ->
        'a param_name -> '-> [> Xhtmltypes.input ] XHTML.M.elt
      val bool_checkbox :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool -> bool param_name -> [> Xhtmltypes.input ] XHTML.M.elt
      val string_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        string option param_name ->
        string -> [> Xhtmltypes.input ] XHTML.M.elt
      val int_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        int option param_name -> int -> [> Xhtmltypes.input ] XHTML.M.elt
      val float_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        float option param_name -> float -> [> Xhtmltypes.input ] XHTML.M.elt
      val user_type_radio :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?checked:bool ->
        ('-> string) ->
        'a option param_name -> '-> [> Xhtmltypes.input ] XHTML.M.elt
      val textarea :
        ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
        string param_name ->
        rows:XHTML.M.number ->
        cols:XHTML.M.number ->
        [ `PCDATA ] XHTML.M.elt -> [> Xhtmltypes.textarea ] XHTML.M.elt
      val select :
        ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
        ?selected:(string option * string) option ->
        string option * string ->
        (string option * string) list ->
        string param_name -> [> Xhtmltypes.select ] XHTML.M.elt
      val submit_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        string -> [> Xhtmltypes.input ] XHTML.M.elt
      val file_input :
        ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
        ?value:string ->
        Extensions.file_info param_name -> [> Xhtmltypes.input ] XHTML.M.elt
    end
  module SubXhtml :
    functor (T : sig type content end->
      sig
        type page = T.content XHTML.M.elt list
        val send :
          ?cookies:Extensions.cookieslist ->
          ?charset:string ->
          ?code:int -> server_params -> page -> Eliommod.result_to_send
        val register :
          ?sp:server_params ->
          service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                   [ `Registrable ])
                  service ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> '-> page Lwt.t) -> unit
        val register_for_session :
          server_params ->
          service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                   [ `Registrable ])
                  service ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> '-> page Lwt.t) -> unit
        val register_new_service :
          ?sp:server_params ->
          url:url_path ->
          get_params:('a, [< suff ] as 'b, 'c) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit,
           [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
           'b, 'c, unit param_name, [> `Registrable ])
          service
        val register_new_coservice :
          ?sp:server_params ->
          ?max_use:int ->
          ?timeout:float ->
          fallback:(unit, unit,
                    [ `Attached of
                        [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                    [ `WithoutSuffix ], unit param_name, unit param_name,
                    [< registrable ])
                   service ->
          get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit,
           [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
           [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
          service
        val register_new_coservice' :
          ?sp:server_params ->
          ?max_use:int ->
          ?timeout:float ->
          get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
           'b, unit param_name, [> `Registrable ])
          service
        val register_new_coservice_for_session :
          server_params ->
          ?max_use:int ->
          ?timeout:float ->
          fallback:(unit, unit,
                    [ `Attached of
                        [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                    [ `WithoutSuffix ], unit param_name, unit param_name,
                    [< registrable ])
                   service ->
          get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit,
           [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
           [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
          service
        val register_new_coservice_for_session' :
          server_params ->
          ?max_use:int ->
          ?timeout:float ->
          get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> unit -> page Lwt.t) ->
          ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
           'b, unit param_name, [> `Registrable ])
          service
        val register_new_post_service :
          ?sp:server_params ->
          fallback:('a, unit,
                    [ `Attached of
                        [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                        a_s ],
                    [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                   service ->
          post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> '-> page Lwt.t) ->
          ('a, 'd,
           [> `Attached of
                [> `Internal of [ `Coservice | `Service ] * [> `Post ] ] a_s ],
           'b, 'c, 'e, [> `Registrable ])
          service
        val register_new_post_coservice :
          ?sp:server_params ->
          ?max_use:int ->
          ?timeout:float ->
          fallback:('a, unit,
                    [ `Attached of
                        [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                        a_s ],
                    [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                   service ->
          post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> '-> page Lwt.t) ->
          ('a, 'd,
           [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
           'b, 'c, 'e, [> `Registrable ])
          service
        val register_new_post_coservice' :
          ?sp:server_params ->
          ?max_use:int ->
          ?timeout:float ->
          post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> unit -> '-> page Lwt.t) ->
          (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
           [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
          service
        val register_new_post_coservice_for_session :
          server_params ->
          ?max_use:int ->
          ?timeout:float ->
          fallback:('a, unit,
                    [< `Attached of
                         [< `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                         a_s ],
                    [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                   service ->
          post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> '-> '-> page Lwt.t) ->
          ('a, 'd,
           [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
           'b, 'c, 'e, [> `Registrable ])
          service
        val register_new_post_coservice_for_session' :
          server_params ->
          ?max_use:int ->
          ?timeout:float ->
          post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
          ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
          (server_params -> unit -> '-> page Lwt.t) ->
          (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
           [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
          service
        module Cookies :
          sig
            type page = page * Extensions.cookieslist
            val send :
              ?cookies:Extensions.cookieslist ->
              ?charset:string ->
              ?code:int -> server_params -> page -> Eliommod.result_to_send
            val register :
              ?sp:server_params ->
              service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                       [ `Registrable ])
                      service ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> '-> page Lwt.t) -> unit
            val register_for_session :
              server_params ->
              service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                       [ `Registrable ])
                      service ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> '-> page Lwt.t) -> unit
            val register_new_service :
              ?sp:server_params ->
              url:url_path ->
              get_params:('a, [< suff ] as 'b, 'c) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> unit -> page Lwt.t) ->
              ('a, unit,
               [> `Attached of
                    [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
               'b, 'c, unit param_name, [> `Registrable ])
              service
            val register_new_coservice :
              ?sp:server_params ->
              ?max_use:int ->
              ?timeout:float ->
              fallback:(unit, unit,
                        [ `Attached of
                            [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                        [ `WithoutSuffix ], unit param_name, unit param_name,
                        [< registrable ])
                       service ->
              get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> unit -> page Lwt.t) ->
              ('a, unit,
               [> `Attached of
                    [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
               [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
              service
            val register_new_coservice' :
              ?sp:server_params ->
              ?max_use:int ->
              ?timeout:float ->
              get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> unit -> page Lwt.t) ->
              ('a, unit, [> `Nonattached of [> `Get ] na_s ],
               [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
              service
            val register_new_coservice_for_session :
              server_params ->
              ?max_use:int ->
              ?timeout:float ->
              fallback:(unit, unit,
                        [ `Attached of
                            [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                        [ `WithoutSuffix ], unit param_name, unit param_name,
                        [< registrable ])
                       service ->
              get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> unit -> page Lwt.t) ->
              ('a, unit,
               [> `Attached of
                    [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
               [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
              service
            val register_new_coservice_for_session' :
              server_params ->
              ?max_use:int ->
              ?timeout:float ->
              get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> unit -> page Lwt.t) ->
              ('a, unit, [> `Nonattached of [> `Get ] na_s ],
               [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
              service
            val register_new_post_service :
              ?sp:server_params ->
              fallback:('a, unit,
                        [ `Attached of
                            [ `Internal of
                                [ `Coservice | `Service ] * [ `Get ] ]
                            a_s ],
                        [< suff ] as 'b, 'c, unit param_name,
                        [< `Registrable ])
                       service ->
              post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> '-> page Lwt.t) ->
              ('a, 'd,
               [> `Attached of
                    [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                    a_s ],
               'b, 'c, 'e, [> `Registrable ])
              service
            val register_new_post_coservice :
              ?sp:server_params ->
              ?max_use:int ->
              ?timeout:float ->
              fallback:('a, unit,
                        [ `Attached of
                            [ `Internal of
                                [< `Coservice | `Service ] * [ `Get ] ]
                            a_s ],
                        [< suff ] as 'b, 'c, unit param_name,
                        [< `Registrable ])
                       service ->
              post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> '-> page Lwt.t) ->
              ('a, 'd,
               [> `Attached of
                    [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
               'b, 'c, 'e, [> `Registrable ])
              service
            val register_new_post_coservice' :
              ?sp:server_params ->
              ?max_use:int ->
              ?timeout:float ->
              post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> unit -> '-> page Lwt.t) ->
              (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
               [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
              service
            val register_new_post_coservice_for_session :
              server_params ->
              ?max_use:int ->
              ?timeout:float ->
              fallback:('a, unit,
                        [< `Attached of
                             [< `Internal of
                                  [< `Coservice | `Service ] * [ `Get ] ]
                             a_s ],
                        [< suff ] as 'b, 'c, unit param_name,
                        [< `Registrable ])
                       service ->
              post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> '-> '-> page Lwt.t) ->
              ('a, 'd,
               [> `Attached of
                    [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
               'b, 'c, 'e, [> `Registrable ])
              service
            val register_new_post_coservice_for_session' :
              server_params ->
              ?max_use:int ->
              ?timeout:float ->
              post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
              ?error_handler:(server_params ->
                              (string * exn) list -> page Lwt.t) ->
              (server_params -> unit -> '-> page Lwt.t) ->
              (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
               [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
              service
          end
        val a :
          ?a:Xhtmltypes.a_attrib XHTML.M.attrib list ->
          ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
           [< registrable ])
          service ->
          server_params ->
          Xhtmltypes.a_content XHTML.M.elt list ->
          '-> [> Xhtmltypes.a ] XHTML.M.elt
        val css_link :
          ?a:Xhtmltypes.link_attrib XHTML.M.attrib list ->
          XHTML.M.uri -> [> Xhtmltypes.link ] XHTML.M.elt
        val js_script :
          ?a:Xhtmltypes.script_attrib XHTML.M.attrib list ->
          XHTML.M.uri -> [> Xhtmltypes.script ] XHTML.M.elt
        val make_uri :
          ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
           [< registrable ])
          service -> server_params -> '-> XHTML.M.uri
        val get_form :
          ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
          ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
           [< registrable ])
          service ->
          server_params ->
          ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
          [> Xhtmltypes.form ] XHTML.M.elt
        val post_form :
          ?a:Xhtmltypes.form_attrib XHTML.M.attrib list ->
          ('a, 'b, [< post_service_kind ], [< suff ], 'c, 'd,
           [< registrable ])
          service ->
          server_params ->
          ('-> Xhtmltypes.form_content XHTML.M.elt list) ->
          '-> [> Xhtmltypes.form ] XHTML.M.elt
        val int_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?value:int -> int param_name -> [> Xhtmltypes.input ] XHTML.M.elt
        val float_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?value:float ->
          float param_name -> [> Xhtmltypes.input ] XHTML.M.elt
        val string_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?value:string ->
          string param_name -> [> Xhtmltypes.input ] XHTML.M.elt
        val user_type_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?value:'->
          ('-> string) ->
          'a param_name -> [> Xhtmltypes.input ] XHTML.M.elt
        val int_password_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?value:int -> int param_name -> [> Xhtmltypes.input ] XHTML.M.elt
        val float_password_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?value:float ->
          float param_name -> [> Xhtmltypes.input ] XHTML.M.elt
        val string_password_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?value:string ->
          string param_name -> [> Xhtmltypes.input ] XHTML.M.elt
        val user_type_password_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?value:'->
          ('-> string) ->
          'a param_name -> [> Xhtmltypes.input ] XHTML.M.elt
        val hidden_int_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          int param_name -> int -> [> Xhtmltypes.input ] XHTML.M.elt
        val hidden_float_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          float param_name -> float -> [> Xhtmltypes.input ] XHTML.M.elt
        val hidden_string_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          string param_name -> string -> [> Xhtmltypes.input ] XHTML.M.elt
        val hidden_user_type_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ('-> string) ->
          'a param_name -> '-> [> Xhtmltypes.input ] XHTML.M.elt
        val bool_checkbox :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          bool param_name -> [> Xhtmltypes.input ] XHTML.M.elt
        val string_radio :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          string option param_name ->
          string -> [> Xhtmltypes.input ] XHTML.M.elt
        val int_radio :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          int option param_name -> int -> [> Xhtmltypes.input ] XHTML.M.elt
        val float_radio :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          float option param_name ->
          float -> [> Xhtmltypes.input ] XHTML.M.elt
        val user_type_radio :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?checked:bool ->
          ('-> string) ->
          'a option param_name -> '-> [> Xhtmltypes.input ] XHTML.M.elt
        val textarea :
          ?a:Xhtmltypes.textarea_attrib XHTML.M.attrib list ->
          string param_name ->
          rows:XHTML.M.number ->
          cols:XHTML.M.number ->
          [ `PCDATA ] XHTML.M.elt -> [> Xhtmltypes.textarea ] XHTML.M.elt
        val select :
          ?a:Xhtmltypes.select_attrib XHTML.M.attrib list ->
          ?selected:(string option * string) option ->
          string option * string ->
          (string option * string) list ->
          string param_name -> [> Xhtmltypes.select ] XHTML.M.elt
        val submit_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          string -> [> Xhtmltypes.input ] XHTML.M.elt
        val file_input :
          ?a:Xhtmltypes.input_attrib XHTML.M.attrib list ->
          ?value:string ->
          Extensions.file_info param_name ->
          [> Xhtmltypes.input ] XHTML.M.elt
      end
  module HtmlText :
    sig
      type page = string
      val send :
        ?cookies:Extensions.cookieslist ->
        ?charset:string ->
        ?code:int -> server_params -> page -> Eliommod.result_to_send
      val register :
        ?sp:server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?sp:server_params ->
        url:url_path ->
        get_params:('a, [< suff ] as 'b, 'c) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
         'b, 'c, unit param_name, [> `Registrable ])
        service
      val register_new_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_post_service :
        ?sp:server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      val register_new_post_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [< `Attached of
                       [< `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                       a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      module Cookies :
        sig
          type page = page * Extensions.cookieslist
          val send :
            ?cookies:Extensions.cookieslist ->
            ?charset:string ->
            ?code:int -> server_params -> page -> Eliommod.result_to_send
          val register :
            ?sp:server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?sp:server_params ->
            url:url_path ->
            get_params:('a, [< suff ] as 'b, 'c) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
             'b, 'c, unit param_name, [> `Registrable ])
            service
          val register_new_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_post_service :
            ?sp:server_params ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
          val register_new_post_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [< `Attached of
                           [< `Internal of
                                [< `Coservice | `Service ] * [ `Get ] ]
                           a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
        end
      type form_content_elt = string
      type form_content_elt_list = string
      type form_elt = string
      type a_content_elt = string
      type a_content_elt_list = string
      type a_elt = string
      type a_elt_list = string
      type div_content_elt = string
      type div_content_elt_list = string
      type uri = string
      type link_elt = string
      type script_elt = string
      type textarea_elt = string
      type select_elt = string
      type input_elt = string
      type pcdata_elt = string
      type a_attrib_t = string
      type form_attrib_t = string
      type input_attrib_t = string
      type textarea_attrib_t = string
      type select_attrib_t = string
      type link_attrib_t = string
      type script_attrib_t = string
      type input_type_t = string
      val a :
        ?a:a_attrib_t ->
        ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
         [< registrable ])
        service -> server_params -> a_content_elt_list -> '-> a_elt
      val get_form :
        ?a:form_attrib_t ->
        ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
         [< registrable ])
        service -> server_params -> ('-> form_content_elt_list) -> form_elt
      val post_form :
        ?a:form_attrib_t ->
        ('a, 'b, [< post_service_kind ], [< suff ], 'c, 'd, [< registrable ])
        service ->
        server_params -> ('-> form_content_elt_list) -> '-> form_elt
      val make_uri :
        ('a, unit, [< get_service_kind ], [< suff ], 'b, unit param_name,
         [< registrable ])
        service -> server_params -> '-> uri
      val js_script : ?a:script_attrib_t -> uri -> script_elt
      val css_link : ?a:link_attrib_t -> uri -> link_elt
      val int_input :
        ?a:input_attrib_t -> ?value:int -> int param_name -> input_elt
      val float_input :
        ?a:input_attrib_t -> ?value:float -> float param_name -> input_elt
      val string_input :
        ?a:input_attrib_t -> ?value:string -> string param_name -> input_elt
      val user_type_input :
        ?a:input_attrib_t ->
        ?value:'-> ('-> string) -> 'a param_name -> input_elt
      val int_password_input :
        ?a:input_attrib_t -> ?value:int -> int param_name -> input_elt
      val float_password_input :
        ?a:input_attrib_t -> ?value:float -> float param_name -> input_elt
      val string_password_input :
        ?a:input_attrib_t -> ?value:string -> string param_name -> input_elt
      val user_type_password_input :
        ?a:input_attrib_t ->
        ?value:'-> ('-> string) -> 'a param_name -> input_elt
      val hidden_int_input :
        ?a:input_attrib_t -> int param_name -> int -> input_elt
      val hidden_float_input :
        ?a:input_attrib_t -> float param_name -> float -> input_elt
      val hidden_string_input :
        ?a:input_attrib_t -> string param_name -> string -> input_elt
      val hidden_user_type_input :
        ?a:input_attrib_t ->
        ('-> string) -> 'a param_name -> '-> input_elt
      val bool_checkbox :
        ?a:input_attrib_t -> ?checked:bool -> bool param_name -> input_elt
      val string_radio :
        ?a:input_attrib_t ->
        ?checked:bool -> string option param_name -> string -> input_elt
      val int_radio :
        ?a:input_attrib_t ->
        ?checked:bool -> int option param_name -> int -> input_elt
      val float_radio :
        ?a:input_attrib_t ->
        ?checked:bool -> float option param_name -> float -> input_elt
      val user_type_radio :
        ?a:input_attrib_t ->
        ?checked:bool ->
        ('-> string) -> 'a option param_name -> '-> input_elt
      val textarea :
        ?a:textarea_attrib_t ->
        string param_name ->
        rows:int -> cols:int -> pcdata_elt -> textarea_elt
      val select :
        ?a:select_attrib_t ->
        ?selected:(string option * string) option ->
        string option * string ->
        (string option * string) list -> string param_name -> select_elt
      val submit_input : ?a:input_attrib_t -> string -> input_elt
      val file_input :
        ?a:input_attrib_t ->
        ?value:string -> Extensions.file_info param_name -> input_elt
    end
  module CssText :
    sig
      type page = string
      val send :
        ?cookies:Extensions.cookieslist ->
        ?charset:string ->
        ?code:int -> server_params -> page -> Eliommod.result_to_send
      val register :
        ?sp:server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?sp:server_params ->
        url:url_path ->
        get_params:('a, [< suff ] as 'b, 'c) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
         'b, 'c, unit param_name, [> `Registrable ])
        service
      val register_new_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_post_service :
        ?sp:server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      val register_new_post_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [< `Attached of
                       [< `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                       a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      module Cookies :
        sig
          type page = page * Extensions.cookieslist
          val send :
            ?cookies:Extensions.cookieslist ->
            ?charset:string ->
            ?code:int -> server_params -> page -> Eliommod.result_to_send
          val register :
            ?sp:server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?sp:server_params ->
            url:url_path ->
            get_params:('a, [< suff ] as 'b, 'c) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
             'b, 'c, unit param_name, [> `Registrable ])
            service
          val register_new_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_post_service :
            ?sp:server_params ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
          val register_new_post_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [< `Attached of
                           [< `Internal of
                                [< `Coservice | `Service ] * [ `Get ] ]
                           a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
        end
    end
  module Text :
    sig
      type page = string * string
      val send :
        ?cookies:Extensions.cookieslist ->
        ?charset:string ->
        ?code:int -> server_params -> page -> Eliommod.result_to_send
      val register :
        ?sp:server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?sp:server_params ->
        url:url_path ->
        get_params:('a, [< suff ] as 'b, 'c) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
         'b, 'c, unit param_name, [> `Registrable ])
        service
      val register_new_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_post_service :
        ?sp:server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      val register_new_post_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [< `Attached of
                       [< `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                       a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      module Cookies :
        sig
          type page = page * Extensions.cookieslist
          val send :
            ?cookies:Extensions.cookieslist ->
            ?charset:string ->
            ?code:int -> server_params -> page -> Eliommod.result_to_send
          val register :
            ?sp:server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?sp:server_params ->
            url:url_path ->
            get_params:('a, [< suff ] as 'b, 'c) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
             'b, 'c, unit param_name, [> `Registrable ])
            service
          val register_new_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_post_service :
            ?sp:server_params ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
          val register_new_post_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [< `Attached of
                           [< `Internal of
                                [< `Coservice | `Service ] * [ `Get ] ]
                           a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
        end
    end
  module Actions :
    sig
      type page = exn list
      val send :
        ?cookies:Extensions.cookieslist ->
        ?charset:string ->
        ?code:int -> server_params -> page -> Eliommod.result_to_send
      val register :
        ?sp:server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?sp:server_params ->
        url:url_path ->
        get_params:('a, [< suff ] as 'b, 'c) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
         'b, 'c, unit param_name, [> `Registrable ])
        service
      val register_new_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_post_service :
        ?sp:server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      val register_new_post_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [< `Attached of
                       [< `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                       a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      module Cookies :
        sig
          type page = page * Extensions.cookieslist
          val send :
            ?cookies:Extensions.cookieslist ->
            ?charset:string ->
            ?code:int -> server_params -> page -> Eliommod.result_to_send
          val register :
            ?sp:server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?sp:server_params ->
            url:url_path ->
            get_params:('a, [< suff ] as 'b, 'c) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
             'b, 'c, unit param_name, [> `Registrable ])
            service
          val register_new_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_post_service :
            ?sp:server_params ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
          val register_new_post_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [< `Attached of
                           [< `Internal of
                                [< `Coservice | `Service ] * [ `Get ] ]
                           a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
        end
    end
  module Unit :
    sig
      type page = unit
      val send :
        ?cookies:Extensions.cookieslist ->
        ?charset:string ->
        ?code:int -> server_params -> page -> Eliommod.result_to_send
      val register :
        ?sp:server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?sp:server_params ->
        url:url_path ->
        get_params:('a, [< suff ] as 'b, 'c) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
         'b, 'c, unit param_name, [> `Registrable ])
        service
      val register_new_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_post_service :
        ?sp:server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      val register_new_post_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [< `Attached of
                       [< `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                       a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      module Cookies :
        sig
          type page = page * Extensions.cookieslist
          val send :
            ?cookies:Extensions.cookieslist ->
            ?charset:string ->
            ?code:int -> server_params -> page -> Eliommod.result_to_send
          val register :
            ?sp:server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?sp:server_params ->
            url:url_path ->
            get_params:('a, [< suff ] as 'b, 'c) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
             'b, 'c, unit param_name, [> `Registrable ])
            service
          val register_new_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_post_service :
            ?sp:server_params ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
          val register_new_post_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [< `Attached of
                           [< `Internal of
                                [< `Coservice | `Service ] * [ `Get ] ]
                           a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
        end
    end
  module Redirections :
    sig
      type page = string
      val send :
        ?cookies:Extensions.cookieslist ->
        ?charset:string ->
        ?code:int -> server_params -> page -> Eliommod.result_to_send
      val register :
        ?sp:server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?sp:server_params ->
        url:url_path ->
        get_params:('a, [< suff ] as 'b, 'c) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
         'b, 'c, unit param_name, [> `Registrable ])
        service
      val register_new_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_post_service :
        ?sp:server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      val register_new_post_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [< `Attached of
                       [< `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                       a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      module Cookies :
        sig
          type page = page * Extensions.cookieslist
          val send :
            ?cookies:Extensions.cookieslist ->
            ?charset:string ->
            ?code:int -> server_params -> page -> Eliommod.result_to_send
          val register :
            ?sp:server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?sp:server_params ->
            url:url_path ->
            get_params:('a, [< suff ] as 'b, 'c) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
             'b, 'c, unit param_name, [> `Registrable ])
            service
          val register_new_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_post_service :
            ?sp:server_params ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
          val register_new_post_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [< `Attached of
                           [< `Internal of
                                [< `Coservice | `Service ] * [ `Get ] ]
                           a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
        end
    end
  module Files :
    sig
      type page = string
      val send :
        ?cookies:Extensions.cookieslist ->
        ?charset:string ->
        ?code:int -> server_params -> page -> Eliommod.result_to_send
      val register :
        ?sp:server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?sp:server_params ->
        url:url_path ->
        get_params:('a, [< suff ] as 'b, 'c) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
         'b, 'c, unit param_name, [> `Registrable ])
        service
      val register_new_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_post_service :
        ?sp:server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      val register_new_post_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [< `Attached of
                       [< `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                       a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      module Cookies :
        sig
          type page = page * Extensions.cookieslist
          val send :
            ?cookies:Extensions.cookieslist ->
            ?charset:string ->
            ?code:int -> server_params -> page -> Eliommod.result_to_send
          val register :
            ?sp:server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?sp:server_params ->
            url:url_path ->
            get_params:('a, [< suff ] as 'b, 'c) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
             'b, 'c, unit param_name, [> `Registrable ])
            service
          val register_new_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_post_service :
            ?sp:server_params ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
          val register_new_post_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [< `Attached of
                           [< `Internal of
                                [< `Coservice | `Service ] * [ `Get ] ]
                           a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
        end
    end
  module Any :
    sig
      type page = Eliommod.result_to_send
      val send :
        ?cookies:Extensions.cookieslist ->
        ?charset:string ->
        ?code:int -> server_params -> page -> Eliommod.result_to_send
      val register :
        ?sp:server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_for_session :
        server_params ->
        service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                 [ `Registrable ])
                service ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) -> unit
      val register_new_service :
        ?sp:server_params ->
        url:url_path ->
        get_params:('a, [< suff ] as 'b, 'c) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
         'b, 'c, unit param_name, [> `Registrable ])
        service
      val register_new_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:(unit, unit,
                  [ `Attached of [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                  [ `WithoutSuffix ], unit param_name, unit param_name,
                  [< registrable ])
                 service ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
         [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
        service
      val register_new_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> unit -> page Lwt.t) ->
        ('a, unit, [> `Nonattached of [> `Get ] na_s ], [ `WithoutSuffix ],
         'b, unit param_name, [> `Registrable ])
        service
      val register_new_post_service :
        ?sp:server_params ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of
              [> `Internal of [ `Coservice | `Service ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [ `Attached of
                      [ `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                      a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice' :
        ?sp:server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      val register_new_post_coservice_for_session :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        fallback:('a, unit,
                  [< `Attached of
                       [< `Internal of [< `Coservice | `Service ] * [ `Get ] ]
                       a_s ],
                  [< suff ] as 'b, 'c, unit param_name, [< `Registrable ])
                 service ->
        post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> '-> '-> page Lwt.t) ->
        ('a, 'd,
         [> `Attached of [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
         'b, 'c, 'e, [> `Registrable ])
        service
      val register_new_post_coservice_for_session' :
        server_params ->
        ?max_use:int ->
        ?timeout:float ->
        post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
        ?error_handler:(server_params -> (string * exn) list -> page Lwt.t) ->
        (server_params -> unit -> '-> page Lwt.t) ->
        (unit, 'a, [> `Nonattached of [> `Post ] na_s ], [ `WithoutSuffix ],
         unit param_name, 'b, [> `Registrable ])
        service
      module Cookies :
        sig
          type page = page * Extensions.cookieslist
          val send :
            ?cookies:Extensions.cookieslist ->
            ?charset:string ->
            ?code:int -> server_params -> page -> Eliommod.result_to_send
          val register :
            ?sp:server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_for_session :
            server_params ->
            service:('a, 'b, [< internal_service_kind ], [< suff ], 'c, 'd,
                     [ `Registrable ])
                    service ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) -> unit
          val register_new_service :
            ?sp:server_params ->
            url:url_path ->
            get_params:('a, [< suff ] as 'b, 'c) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of [> `Internal of [> `Service ] * [> `Get ] ] a_s ],
             'b, 'c, unit param_name, [> `Registrable ])
            service
          val register_new_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:(unit, unit,
                      [ `Attached of
                          [ `Internal of [ `Service ] * [ `Get ] ] a_s ],
                      [ `WithoutSuffix ], unit param_name, unit param_name,
                      [< registrable ])
                     service ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Get ] ] a_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            get_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> unit -> page Lwt.t) ->
            ('a, unit, [> `Nonattached of [> `Get ] na_s ],
             [ `WithoutSuffix ], 'b, unit param_name, [> `Registrable ])
            service
          val register_new_post_service :
            ?sp:server_params ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of [ `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [ `Coservice | `Service ] * [> `Post ] ]
                  a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [ `Attached of
                          [ `Internal of
                              [< `Coservice | `Service ] * [ `Get ] ]
                          a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice' :
            ?sp:server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
          val register_new_post_coservice_for_session :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            fallback:('a, unit,
                      [< `Attached of
                           [< `Internal of
                                [< `Coservice | `Service ] * [ `Get ] ]
                           a_s ],
                      [< suff ] as 'b, 'c, unit param_name,
                      [< `Registrable ])
                     service ->
            post_params:('d, [ `WithoutSuffix ], 'e) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> '-> '-> page Lwt.t) ->
            ('a, 'd,
             [> `Attached of
                  [> `Internal of [> `Coservice ] * [> `Post ] ] a_s ],
             'b, 'c, 'e, [> `Registrable ])
            service
          val register_new_post_coservice_for_session' :
            server_params ->
            ?max_use:int ->
            ?timeout:float ->
            post_params:('a, [ `WithoutSuffix ], 'b) params_type ->
            ?error_handler:(server_params ->
                            (string * exn) list -> page Lwt.t) ->
            (server_params -> unit -> '-> page Lwt.t) ->
            (unit, 'a, [> `Nonattached of [> `Post ] na_s ],
             [ `WithoutSuffix ], unit param_name, 'b, [> `Registrable ])
            service
        end
    end
  type 'a table
  val create_table : ?sp:Eliom.server_params -> unit -> 'Eliom.table
  val get_session_data : 'Eliom.table -> Eliom.server_params -> 'a option
  val set_session_data : 'Eliom.table -> Eliom.server_params -> '-> unit
  val remove_session_data : 'Eliom.table -> Eliom.server_params -> unit
  type 'a persistent_table
  val create_persistent_table : string -> 'Eliom.persistent_table
  val get_persistent_data :
    'Eliom.persistent_table -> Eliom.server_params -> 'a option Lwt.t
  val set_persistent_data :
    'Eliom.persistent_table -> Eliom.server_params -> '-> unit Lwt.t
  val remove_persistent_data :
    'Eliom.persistent_table -> Eliom.server_params -> unit Lwt.t
  val close_persistent_session : Eliom.server_params -> unit Lwt.t
  val close_volatile_session : Eliom.server_params -> unit
  val close_session : Eliom.server_params -> unit Lwt.t
  val number_of_sessions : Eliom.server_params -> int
  val number_of_tables : unit -> int
  val number_of_table_elements : unit -> int list
  val number_of_persistent_sessions : unit -> int Lwt.t
  val number_of_persistent_tables : unit -> int
  val number_of_persistent_table_elements : unit -> (string * int) list Lwt.t
end