sig
  type ('a, +'b, +'c) params_type
  type suff = [ `Endsuffix | `WithSuffix | `WithoutSuffix ]
  type 'a param_name
  type no_param_name
  type 'a setoneradio = [ `One of '| `Radio of '| `Set of 'a ]
  type 'a oneradio = [ `One of '| `Radio of 'a ]
  type 'a setone = [ `One of '| `Set of 'a ]
  type ('a, 'b) binsum = Inj1 of '| Inj2 of 'b
  type 'an listnames = {
    it : 'el 'a. ('an -> 'el -> '-> 'a) -> 'el list -> '-> 'a;
  }
  val int :
    string ->
    (int, [ `WithoutSuffix ], [ `One of int ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val int32 :
    string ->
    (int32, [ `WithoutSuffix ], [ `One of int32 ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val int64 :
    string ->
    (int64, [ `WithoutSuffix ], [ `One of int64 ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val float :
    string ->
    (float, [ `WithoutSuffix ], [ `One of float ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val string :
    string ->
    (string, [ `WithoutSuffix ],
     [ `One of string ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val bool :
    string ->
    (bool, [ `WithoutSuffix ], [ `One of bool ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val file :
    string ->
    (Eliom_lib.file_info, [ `WithoutSuffix ],
     [ `One of Eliom_lib.file_info ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val unit : (unit, [ `WithoutSuffix ], unit) Eliom_parameter.params_type
  val user_type :
    of_string:(string -> 'a) ->
    to_string:('-> string) ->
    string ->
    ('a, [ `WithoutSuffix ], [ `One of 'a ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val type_checker :
    ('-> unit) ->
    ('a, 'b, 'c) Eliom_parameter.params_type ->
    ('a, 'b, 'c) Eliom_parameter.params_type
  type coordinates = { abscissa : int; ordinate : int; }
  val coordinates :
    string ->
    (Eliom_parameter.coordinates, [ `WithoutSuffix ],
     [ `One of Eliom_parameter.coordinates ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val string_coordinates :
    string ->
    (string * Eliom_parameter.coordinates, [ `WithoutSuffix ],
     [ `One of string * Eliom_parameter.coordinates ]
     Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val int_coordinates :
    string ->
    (int * Eliom_parameter.coordinates, [ `WithoutSuffix ],
     [ `One of int * Eliom_parameter.coordinates ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val int32_coordinates :
    string ->
    (int32 * Eliom_parameter.coordinates, [ `WithoutSuffix ],
     [ `One of int32 * Eliom_parameter.coordinates ]
     Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val int64_coordinates :
    string ->
    (int64 * Eliom_parameter.coordinates, [ `WithoutSuffix ],
     [ `One of int64 * Eliom_parameter.coordinates ]
     Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val float_coordinates :
    string ->
    (float * Eliom_parameter.coordinates, [ `WithoutSuffix ],
     [ `One of float * Eliom_parameter.coordinates ]
     Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val user_type_coordinates :
    of_string:(string -> 'a) ->
    to_string:('-> string) ->
    string ->
    ('a * Eliom_parameter.coordinates, [ `WithoutSuffix ],
     [ `One of 'a * Eliom_parameter.coordinates ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val ( ** ) :
    ('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
    ('c, [< `Endsuffix | `WithoutSuffix ] as 'e, 'd)
    Eliom_parameter.params_type ->
    ('a * 'c, 'e, 'b * 'd) Eliom_parameter.params_type
  val prod :
    ('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
    ('c, [< `Endsuffix | `WithoutSuffix ] as 'e, 'd)
    Eliom_parameter.params_type ->
    ('a * 'c, 'e, 'b * 'd) Eliom_parameter.params_type
  val sum :
    ('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
    ('c, [ `WithoutSuffix ], 'd) Eliom_parameter.params_type ->
    (('a, 'c) Eliom_parameter.binsum, [ `WithoutSuffix ], 'b * 'd)
    Eliom_parameter.params_type
  val opt :
    ('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
    ('a option, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type
  val neopt :
    ('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
    ('a option, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type
  val radio :
    (string ->
     ('a, [ `WithoutSuffix ], [ `One of 'b ] Eliom_parameter.param_name)
     Eliom_parameter.params_type) ->
    string ->
    ('a option, [ `WithoutSuffix ],
     [ `Radio of 'b ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val any :
    ((string * string) list, [ `WithoutSuffix ], unit)
    Eliom_parameter.params_type
  val set :
    (string ->
     ('a, [ `WithoutSuffix ], [ `One of 'b ] Eliom_parameter.param_name)
     Eliom_parameter.params_type) ->
    string ->
    ('a list, [ `WithoutSuffix ], [ `Set of 'b ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val list :
    string ->
    ('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
    ('a list, [ `WithoutSuffix ], 'Eliom_parameter.listnames)
    Eliom_parameter.params_type
  val regexp :
    Netstring_pcre.regexp ->
    string ->
    to_string:(string -> string) ->
    string ->
    (string, [ `WithoutSuffix ],
     [ `One of string ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val guard :
    (string -> ('a, 'b, 'c) Eliom_parameter.params_type) ->
    string -> ('-> bool) -> ('a, 'b, 'c) Eliom_parameter.params_type
  val suffix :
    ?redirect_if_not_suffix:bool ->
    ('s, [< `Endsuffix | `WithoutSuffix ], 'sn) Eliom_parameter.params_type ->
    ('s, [ `WithSuffix ], 'sn) Eliom_parameter.params_type
  val all_suffix :
    string ->
    (string list, [ `Endsuffix ],
     [ `One of string list ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val all_suffix_string :
    string ->
    (string, [ `Endsuffix ], [ `One of string ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val all_suffix_user :
    of_string:(string -> 'a) ->
    to_string:('-> string) ->
    string ->
    ('a, [ `Endsuffix ], [ `One of 'a ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val all_suffix_regexp :
    Netstring_pcre.regexp ->
    string ->
    to_string:(string -> string) ->
    string ->
    (string, [ `Endsuffix ], [ `One of string ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  val suffix_prod :
    ?redirect_if_not_suffix:bool ->
    ('s, [< `Endsuffix | `WithoutSuffix ], 'sn) Eliom_parameter.params_type ->
    ('a, [ `WithoutSuffix ], 'an) Eliom_parameter.params_type ->
    ('s * 'a, [ `WithSuffix ], 'sn * 'an) Eliom_parameter.params_type
  val suffix_const :
    string ->
    (unit, [ `WithoutSuffix ], [ `One of unit ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  type 'a ocaml
  val ocaml :
    string ->
    'Deriving_Json.t ->
    ('a, [ `WithoutSuffix ],
     [ `One of 'Eliom_parameter.ocaml ] Eliom_parameter.param_name)
    Eliom_parameter.params_type
  type raw_post_data =
      ((string * string) * (string * string) list) option *
      string Ocsigen_stream.t option
  val raw_post_data :
    (Eliom_parameter.raw_post_data, [ `WithoutSuffix ],
     Eliom_parameter.no_param_name)
    Eliom_parameter.params_type
  type ('a, +'tipo, +'names) non_localized_params
  val make_non_localized_parameters :
    prefix:string ->
    name:string ->
    ?persistent:bool ->
    ('a, [ `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
    ('a, [ `WithoutSuffix ], 'b) Eliom_parameter.non_localized_params
  val get_non_localized_get_parameters :
    ('a, [ `WithoutSuffix ], 'b) Eliom_parameter.non_localized_params ->
    'a option
  val get_non_localized_post_parameters :
    ('a, [ `WithoutSuffix ], 'b) Eliom_parameter.non_localized_params ->
    'a option
  type nl_params_set
  val empty_nl_params_set : Eliom_parameter.nl_params_set
  val add_nl_parameter :
    Eliom_parameter.nl_params_set ->
    ('a, [< `WithSuffix | `WithoutSuffix ], 'b)
    Eliom_parameter.non_localized_params ->
    '-> Eliom_parameter.nl_params_set
  val get_nl_params_names :
    ('b, [< `WithSuffix | `WithoutSuffix ], 'a)
    Eliom_parameter.non_localized_params -> 'a
  val get_to_and_from :
    ('a, 'b, 'c) Eliom_parameter.params_type ->
    (string -> 'a) * ('-> string)
  val walk_parameter_tree :
    [ `One of string ] Eliom_parameter.param_name ->
    ('a, 'b, 'c) Eliom_parameter.params_type ->
    ((string -> 'd) * ('-> string)) option
  val contains_suffix :
    ('a, 'b, 'c) Eliom_parameter.params_type -> bool option
  val add_pref_params :
    string ->
    ('a, 'b, 'c) Eliom_parameter.params_type ->
    ('a, 'b, 'c) Eliom_parameter.params_type
  val construct_params :
    (string * string) list Eliom_lib.String.Table.t ->
    ('a, [< `WithSuffix | `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
    '-> string list option * string
  val construct_params_string : (string * string) list -> string
  val construct_params_list_raw :
    (string * string) list Eliom_lib.String.Table.t ->
    ('a, [< `WithSuffix | `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
    '->
    string list option * (string * string) list Eliom_lib.String.Table.t *
    (string * string) list
  val construct_params_list :
    (string * string) list Eliom_lib.String.Table.t ->
    ('a, [< `WithSuffix | `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
    '-> string list option * (string * string) list
  val reconstruct_params :
    sp:Eliom_common.server_params ->
    ('a, [< `WithSuffix | `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
    (string * string) list Lwt.t option ->
    (string * Eliom_lib.file_info) list Lwt.t option ->
    bool -> Eliom_lib.Url.path option -> 'Lwt.t
  type anon_params_type = int
  val anonymise_params_type :
    ('a, 'b, 'c) Eliom_parameter.params_type ->
    Eliom_parameter.anon_params_type
  val make_params_names :
    ('a, 'b, 'c) Eliom_parameter.params_type -> bool * 'c
  val string_of_param_name : 'Eliom_parameter.param_name -> string
  val nl_prod :
    ('a, 'su, 'an) Eliom_parameter.params_type ->
    ('s, [ `WithoutSuffix ], 'sn) Eliom_parameter.non_localized_params ->
    ('a * 's, 'su, 'an * 'sn) Eliom_parameter.params_type
  val remove_from_nlp :
    (string * 'c) list Eliom_lib.String.Table.t ->
    ('a, [< `WithSuffix | `WithoutSuffix ], 'b) Eliom_parameter.params_type ->
    (string * 'c) list Eliom_lib.String.Table.t
  val table_of_nl_params_set :
    Eliom_parameter.nl_params_set ->
    (string * string) list Eliom_lib.String.Table.t
  val list_of_nl_params_set :
    Eliom_parameter.nl_params_set -> (string * string) list
  val string_of_nl_params_set : Eliom_parameter.nl_params_set -> string
  val wrap_param_type :
    ('a, 'b, 'c) Eliom_parameter.params_type ->
    ('a, 'b, 'c) Eliom_parameter.params_type
end