sig
  module Map_path :
    sig
      type +!'a t
      val empty : 'a t
      val add : Ocsigen_lib_base.Url_base.path -> '-> 'a t -> 'a t
      val add_to_list :
        Ocsigen_lib_base.Url_base.path -> '-> 'a list t -> 'a list t
      val update :
        Ocsigen_lib_base.Url_base.path ->
        ('a option -> 'a option) -> 'a t -> 'a t
      val singleton : Ocsigen_lib_base.Url_base.path -> '-> 'a t
      val remove : Ocsigen_lib_base.Url_base.path -> 'a t -> 'a t
      val merge :
        (Ocsigen_lib_base.Url_base.path ->
         'a option -> 'b option -> 'c option) ->
        'a t -> 'b t -> 'c t
      val union :
        (Ocsigen_lib_base.Url_base.path -> '-> '-> 'a option) ->
        'a t -> 'a t -> 'a t
      val cardinal : 'a t -> int
      val bindings : 'a t -> (Ocsigen_lib_base.Url_base.path * 'a) list
      val min_binding : 'a t -> Ocsigen_lib_base.Url_base.path * 'a
      val min_binding_opt :
        'a t -> (Ocsigen_lib_base.Url_base.path * 'a) option
      val max_binding : 'a t -> Ocsigen_lib_base.Url_base.path * 'a
      val max_binding_opt :
        'a t -> (Ocsigen_lib_base.Url_base.path * 'a) option
      val choose : 'a t -> Ocsigen_lib_base.Url_base.path * 'a
      val choose_opt : 'a t -> (Ocsigen_lib_base.Url_base.path * 'a) option
      val find : Ocsigen_lib_base.Url_base.path -> 'a t -> 'a
      val find_opt : Ocsigen_lib_base.Url_base.path -> 'a t -> 'a option
      val find_first :
        (Ocsigen_lib_base.Url_base.path -> bool) ->
        'a t -> Ocsigen_lib_base.Url_base.path * 'a
      val find_first_opt :
        (Ocsigen_lib_base.Url_base.path -> bool) ->
        'a t -> (Ocsigen_lib_base.Url_base.path * 'a) option
      val find_last :
        (Ocsigen_lib_base.Url_base.path -> bool) ->
        'a t -> Ocsigen_lib_base.Url_base.path * 'a
      val find_last_opt :
        (Ocsigen_lib_base.Url_base.path -> bool) ->
        'a t -> (Ocsigen_lib_base.Url_base.path * 'a) option
      val iter :
        (Ocsigen_lib_base.Url_base.path -> '-> unit) -> 'a t -> unit
      val fold :
        (Ocsigen_lib_base.Url_base.path -> '-> 'acc -> 'acc) ->
        'a t -> 'acc -> 'acc
      val map : ('-> 'b) -> 'a t -> 'b t
      val mapi : (Ocsigen_lib_base.Url_base.path -> '-> 'b) -> 'a t -> 'b t
      val filter :
        (Ocsigen_lib_base.Url_base.path -> '-> bool) -> 'a t -> 'a t
      val filter_map :
        (Ocsigen_lib_base.Url_base.path -> '-> 'b option) -> 'a t -> 'b t
      val partition :
        (Ocsigen_lib_base.Url_base.path -> '-> bool) -> 'a t -> 'a t * 'a t
      val split :
        Ocsigen_lib_base.Url_base.path -> 'a t -> 'a t * 'a option * 'a t
      val is_empty : 'a t -> bool
      val mem : Ocsigen_lib_base.Url_base.path -> 'a t -> bool
      val equal : ('-> '-> bool) -> 'a t -> 'a t -> bool
      val compare : ('-> '-> int) -> 'a t -> 'a t -> int
      val for_all :
        (Ocsigen_lib_base.Url_base.path -> '-> bool) -> 'a t -> bool
      val exists :
        (Ocsigen_lib_base.Url_base.path -> '-> bool) -> 'a t -> bool
      val to_list : 'a t -> (Ocsigen_lib_base.Url_base.path * 'a) list
      val of_list : (Ocsigen_lib_base.Url_base.path * 'a) list -> 'a t
      val to_seq : 'a t -> (Ocsigen_lib_base.Url_base.path * 'a) Seq.t
      val to_rev_seq : 'a t -> (Ocsigen_lib_base.Url_base.path * 'a) Seq.t
      val to_seq_from :
        Ocsigen_lib_base.Url_base.path ->
        'a t -> (Ocsigen_lib_base.Url_base.path * 'a) Seq.t
      val add_seq :
        (Ocsigen_lib_base.Url_base.path * 'a) Seq.t -> 'a t -> 'a t
      val of_seq : (Ocsigen_lib_base.Url_base.path * 'a) Seq.t -> 'a t
    end
  module Map_inner :
    sig
      type +!'a t
      val empty : 'a t
      val add : string -> '-> 'a t -> 'a t
      val add_to_list : string -> '-> 'a list t -> 'a list t
      val update : string -> ('a option -> 'a option) -> 'a t -> 'a t
      val singleton : string -> '-> 'a t
      val remove : string -> 'a t -> 'a t
      val merge :
        (string -> 'a option -> 'b option -> 'c option) ->
        'a t -> 'b t -> 'c t
      val union : (string -> '-> '-> 'a option) -> 'a t -> 'a t -> 'a t
      val cardinal : 'a t -> int
      val bindings : 'a t -> (string * 'a) list
      val min_binding : 'a t -> string * 'a
      val min_binding_opt : 'a t -> (string * 'a) option
      val max_binding : 'a t -> string * 'a
      val max_binding_opt : 'a t -> (string * 'a) option
      val choose : 'a t -> string * 'a
      val choose_opt : 'a t -> (string * 'a) option
      val find : string -> 'a t -> 'a
      val find_opt : string -> 'a t -> 'a option
      val find_first : (string -> bool) -> 'a t -> string * 'a
      val find_first_opt : (string -> bool) -> 'a t -> (string * 'a) option
      val find_last : (string -> bool) -> 'a t -> string * 'a
      val find_last_opt : (string -> bool) -> 'a t -> (string * 'a) option
      val iter : (string -> '-> unit) -> 'a t -> unit
      val fold : (string -> '-> 'acc -> 'acc) -> 'a t -> 'acc -> 'acc
      val map : ('-> 'b) -> 'a t -> 'b t
      val mapi : (string -> '-> 'b) -> 'a t -> 'b t
      val filter : (string -> '-> bool) -> 'a t -> 'a t
      val filter_map : (string -> '-> 'b option) -> 'a t -> 'b t
      val partition : (string -> '-> bool) -> 'a t -> 'a t * 'a t
      val split : string -> 'a t -> 'a t * 'a option * 'a t
      val is_empty : 'a t -> bool
      val mem : string -> 'a t -> bool
      val equal : ('-> '-> bool) -> 'a t -> 'a t -> bool
      val compare : ('-> '-> int) -> 'a t -> 'a t -> int
      val for_all : (string -> '-> bool) -> 'a t -> bool
      val exists : (string -> '-> bool) -> 'a t -> bool
      val to_list : 'a t -> (string * 'a) list
      val of_list : (string * 'a) list -> 'a t
      val to_seq : 'a t -> (string * 'a) Seq.t
      val to_rev_seq : 'a t -> (string * 'a) Seq.t
      val to_seq_from : string -> 'a t -> (string * 'a) Seq.t
      val add_seq : (string * 'a) Seq.t -> 'a t -> 'a t
      val of_seq : (string * 'a) Seq.t -> 'a t
    end
  type cookie = OSet of float option * string * bool | OUnset
  type t =
      Ocsigen_cookie_map.cookie Ocsigen_cookie_map.Map_inner.t
      Ocsigen_cookie_map.Map_path.t
  val empty : Ocsigen_cookie_map.t
  val add :
    path:Ocsigen_lib_base.Url_base.path ->
    string ->
    Ocsigen_cookie_map.cookie -> Ocsigen_cookie_map.t -> Ocsigen_cookie_map.t
  val add_multi :
    Ocsigen_cookie_map.t -> Ocsigen_cookie_map.t -> Ocsigen_cookie_map.t
  val remove :
    path:Ocsigen_lib_base.Url_base.path ->
    string -> Ocsigen_cookie_map.t -> Ocsigen_cookie_map.t
  module Poly :
    sig
      val add :
        path:Ocsigen_lib_base.Url_base.path ->
        string ->
        '->
        'Ocsigen_cookie_map.Map_inner.t Ocsigen_cookie_map.Map_path.t ->
        'Ocsigen_cookie_map.Map_inner.t Ocsigen_cookie_map.Map_path.t
      val remove :
        path:Ocsigen_lib_base.Url_base.path ->
        string ->
        'Ocsigen_cookie_map.Map_inner.t Ocsigen_cookie_map.Map_path.t ->
        'Ocsigen_cookie_map.Map_inner.t Ocsigen_cookie_map.Map_path.t
    end
end