sig
  module type S =
    sig
      type suff = [ `Endsuffix | `WithSuffix | `WithoutSuffix ]
      type ('a, +'b, 'c) params_type constraint 'b = [< suff ]
      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;
      }
      type 'a to_and_of = {
        of_string : string -> 'a;
        to_string : '-> string;
      }
      val int :
        string ->
        (int, [ `WithoutSuffix ],
         [ `One of int ] Eliom_parameter_sigs.S.param_name)
        Eliom_parameter_sigs.S.params_type
      val int32 :
        string ->
        (int32, [ `WithoutSuffix ],
         [ `One of int32 ] Eliom_parameter_sigs.S.param_name)
        Eliom_parameter_sigs.S.params_type
      val int64 :
        string ->
        (int64, [ `WithoutSuffix ],
         [ `One of int64 ] Eliom_parameter_sigs.S.param_name)
        Eliom_parameter_sigs.S.params_type
      val float :
        string ->
        (float, [ `WithoutSuffix ],
         [ `One of float ] Eliom_parameter_sigs.S.param_name)
        Eliom_parameter_sigs.S.params_type
      val string :
        string ->
        (string, [ `WithoutSuffix ],
         [ `One of string ] Eliom_parameter_sigs.S.param_name)
        Eliom_parameter_sigs.S.params_type
      val bool :
        string ->
        (bool, [ `WithoutSuffix ],
         [ `One of bool ] Eliom_parameter_sigs.S.param_name)
        Eliom_parameter_sigs.S.params_type
      val file :
        string ->
        (Eliom_lib.file_info, [ `WithoutSuffix ],
         [ `One of Eliom_lib.file_info ] Eliom_parameter_sigs.S.param_name)
        Eliom_parameter_sigs.S.params_type
      val unit :
        (unit, [ `WithoutSuffix ], unit) Eliom_parameter_sigs.S.params_type
      type coordinates = { abscissa : int; ordinate : int; }
      val coordinates :
        string ->
        (Eliom_parameter_sigs.S.coordinates, [ `WithoutSuffix ],
         [ `One of Eliom_parameter_sigs.S.coordinates ]
         Eliom_parameter_sigs.S.param_name)
        Eliom_parameter_sigs.S.params_type
      val ( ** ) :
        ('a, [ `WithoutSuffix ], 'b) Eliom_parameter_sigs.S.params_type ->
        ('c, [< `Endsuffix | `WithoutSuffix ] as 'e, 'd)
        Eliom_parameter_sigs.S.params_type ->
        ('a * 'c, 'e, 'b * 'd) Eliom_parameter_sigs.S.params_type
      val prod :
        ('a, [ `WithoutSuffix ], 'b) Eliom_parameter_sigs.S.params_type ->
        ('c, [< `Endsuffix | `WithoutSuffix ] as 'e, 'd)
        Eliom_parameter_sigs.S.params_type ->
        ('a * 'c, 'e, 'b * 'd) Eliom_parameter_sigs.S.params_type
      val sum :
        ('a, [ `WithoutSuffix ], 'b) Eliom_parameter_sigs.S.params_type ->
        ('c, [ `WithoutSuffix ], 'd) Eliom_parameter_sigs.S.params_type ->
        (('a, 'c) Eliom_parameter_sigs.S.binsum, [ `WithoutSuffix ], 'b * 'd)
        Eliom_parameter_sigs.S.params_type
      val opt :
        ('a, [ `WithoutSuffix ], 'b) Eliom_parameter_sigs.S.params_type ->
        ('a option, [ `WithoutSuffix ], 'b)
        Eliom_parameter_sigs.S.params_type
      val neopt :
        ('a, [ `WithoutSuffix ], 'b) Eliom_parameter_sigs.S.params_type ->
        ('a option, [ `WithoutSuffix ], 'b)
        Eliom_parameter_sigs.S.params_type
      val radio :
        (string ->
         ('a, [ `WithoutSuffix ],
          [ `One of 'b ] Eliom_parameter_sigs.S.param_name)
         Eliom_parameter_sigs.S.params_type) ->
        string ->
        ('a option, [ `WithoutSuffix ],
         [ `Radio of 'b ] Eliom_parameter_sigs.S.param_name)
        Eliom_parameter_sigs.S.params_type
      val any :
        ((string * string) list, [ `WithoutSuffix ], unit)
        Eliom_parameter_sigs.S.params_type
      val set :
        (string ->
         ('a, [ `WithoutSuffix ],
          [ `One of 'b ] Eliom_parameter_sigs.S.param_name)
         Eliom_parameter_sigs.S.params_type) ->
        string ->
        ('a list, [ `WithoutSuffix ],
         [ `Set of 'b ] Eliom_parameter_sigs.S.param_name)
        Eliom_parameter_sigs.S.params_type
      val list :
        string ->
        ('a, [ `WithoutSuffix ], 'b) Eliom_parameter_sigs.S.params_type ->
        ('a list, [ `WithoutSuffix ], 'Eliom_parameter_sigs.S.listnames)
        Eliom_parameter_sigs.S.params_type
      val suffix :
        ?redirect_if_not_suffix:bool ->
        ('s, [< `Endsuffix | `WithoutSuffix ], 'sn)
        Eliom_parameter_sigs.S.params_type ->
        ('s, [ `WithSuffix ], 'sn) Eliom_parameter_sigs.S.params_type
      val all_suffix :
        string ->
        (string list, [ `Endsuffix ],
         [ `One of string list ] Eliom_parameter_sigs.S.param_name)
        Eliom_parameter_sigs.S.params_type
      val all_suffix_string :
        string ->
        (string, [ `Endsuffix ],
         [ `One of string ] Eliom_parameter_sigs.S.param_name)
        Eliom_parameter_sigs.S.params_type
      val suffix_prod :
        ?redirect_if_not_suffix:bool ->
        ('s, [< `Endsuffix | `WithoutSuffix ], 'sn)
        Eliom_parameter_sigs.S.params_type ->
        ('a, [ `WithoutSuffix ], 'an) Eliom_parameter_sigs.S.params_type ->
        ('s * 'a, [ `WithSuffix ], 'sn * 'an)
        Eliom_parameter_sigs.S.params_type
      val suffix_const :
        string ->
        (unit, [ `WithoutSuffix ],
         [ `One of unit ] Eliom_parameter_sigs.S.param_name)
        Eliom_parameter_sigs.S.params_type
      type 'a ocaml
      val ocaml :
        string ->
        'Deriving_Json.t ->
        ('a, [ `WithoutSuffix ],
         [ `One of 'Eliom_parameter_sigs.S.ocaml ]
         Eliom_parameter_sigs.S.param_name)
        Eliom_parameter_sigs.S.params_type
      type raw_post_data
      val raw_post_data :
        (Eliom_parameter_sigs.S.raw_post_data, [ `WithoutSuffix ],
         Eliom_parameter_sigs.S.no_param_name)
        Eliom_parameter_sigs.S.params_type
      type ('a, +'b, 'names) non_localized_params constraint 'b = [< suff ]
      val make_non_localized_parameters :
        prefix:string ->
        name:string ->
        ?persistent:bool ->
        ('a, [ `WithoutSuffix ], 'b) Eliom_parameter_sigs.S.params_type ->
        ('a, [ `WithoutSuffix ], 'b)
        Eliom_parameter_sigs.S.non_localized_params
      type nl_params_set
      val empty_nl_params_set : Eliom_parameter_sigs.S.nl_params_set
      val add_nl_parameter :
        Eliom_parameter_sigs.S.nl_params_set ->
        ('a, [< `WithSuffix | `WithoutSuffix ], 'b)
        Eliom_parameter_sigs.S.non_localized_params ->
        '-> Eliom_parameter_sigs.S.nl_params_set
      val get_nl_params_names :
        ('b, [< `WithSuffix | `WithoutSuffix ], 'a)
        Eliom_parameter_sigs.S.non_localized_params -> 'a
      val get_to_and_of :
        ('a, [< suff ], 'c) Eliom_parameter_sigs.S.params_type ->
        'Eliom_parameter_sigs.S.to_and_of
      val walk_parameter_tree :
        [ `One of string ] Eliom_parameter_sigs.S.param_name ->
        ('a, [< suff ], 'c) Eliom_parameter_sigs.S.params_type ->
        'Eliom_parameter_sigs.S.to_and_of option
      val contains_suffix :
        ('a, [< suff ], 'c) Eliom_parameter_sigs.S.params_type -> bool option
      val add_pref_params :
        string ->
        ('a, [< Eliom_parameter_sigs.S.suff ] as 'b, 'c)
        Eliom_parameter_sigs.S.params_type ->
        ('a, 'b, 'c) Eliom_parameter_sigs.S.params_type
      type params = (string * Eliommod_parameters.param) list
      val construct_params :
        Eliom_parameter_sigs.S.params Eliom_lib.String.Table.t ->
        ('a, [< `WithSuffix | `WithoutSuffix ], 'b)
        Eliom_parameter_sigs.S.params_type ->
        '-> string list option * string
      val construct_params_string : Eliom_parameter_sigs.S.params -> string
      val construct_params_list_raw :
        Eliom_parameter_sigs.S.params Eliom_lib.String.Table.t ->
        ('a, [< `WithSuffix | `WithoutSuffix ], 'b)
        Eliom_parameter_sigs.S.params_type ->
        '->
        string list option *
        Eliom_parameter_sigs.S.params Eliom_lib.String.Table.t *
        Eliom_parameter_sigs.S.params
      val construct_params_list :
        Eliom_parameter_sigs.S.params Eliom_lib.String.Table.t ->
        ('a, [< `WithSuffix | `WithoutSuffix ], 'b)
        Eliom_parameter_sigs.S.params_type ->
        '-> string list option * Eliom_parameter_sigs.S.params
      val reconstruct_params :
        sp:Eliom_common.server_params ->
        ('a, [< `WithSuffix | `WithoutSuffix ], 'c)
        Eliom_parameter_sigs.S.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
      val make_params_names :
        ('a, [< suff ], 'c) Eliom_parameter_sigs.S.params_type -> bool * 'c
      val string_of_param_name :
        'Eliom_parameter_sigs.S.param_name -> string
      val nl_prod :
        ('a, [< Eliom_parameter_sigs.S.suff ] as 'b, 'an)
        Eliom_parameter_sigs.S.params_type ->
        ('s, [ `WithoutSuffix ], 'sn)
        Eliom_parameter_sigs.S.non_localized_params ->
        ('a * 's, 'b, 'an * 'sn) Eliom_parameter_sigs.S.params_type
      val remove_from_nlp :
        (string * 'c) list Eliom_lib.String.Table.t ->
        ('a, [< `WithSuffix | `WithoutSuffix ], 'b)
        Eliom_parameter_sigs.S.params_type ->
        (string * 'c) list Eliom_lib.String.Table.t
      val table_of_nl_params_set :
        Eliom_parameter_sigs.S.nl_params_set ->
        Eliom_parameter_sigs.S.params Eliom_lib.String.Table.t
      val list_of_nl_params_set :
        Eliom_parameter_sigs.S.nl_params_set -> Eliom_parameter_sigs.S.params
      val string_of_nl_params_set :
        Eliom_parameter_sigs.S.nl_params_set -> string
      val wrap_param_type :
        ('a, [< Eliom_parameter_sigs.S.suff ] as 'b, 'c)
        Eliom_parameter_sigs.S.params_type ->
        ('a, 'b, 'c) Eliom_parameter_sigs.S.params_type
      type _ is_unit =
          U_not : 'Eliom_parameter_sigs.S.is_unit
        | U_yes : unit Eliom_parameter_sigs.S.is_unit
      val is_unit :
        ('a, [< suff ], 'b) Eliom_parameter_sigs.S.params_type ->
        'Eliom_parameter_sigs.S.is_unit
      val anonymise_params_type :
        ('a, [< suff ], 'c) Eliom_parameter_sigs.S.params_type -> int
    end
  val section : Lwt_log_core.section
end