sig
  type ('a, 'b) t = ('a * 'b) list
  val get :
    ?eq:('a -> 'a -> bool) -> ('a, 'b) CCList.Assoc.t -> 'a -> 'b option
  val get_exn : ?eq:('a -> 'a -> bool) -> ('a, 'b) CCList.Assoc.t -> 'a -> 'b
  val set :
    ?eq:('a -> 'a -> bool) ->
    ('a, 'b) CCList.Assoc.t -> 'a -> 'b -> ('a, 'b) CCList.Assoc.t
  val mem : ?eq:('a -> 'a -> bool) -> ('a, 'b) CCList.Assoc.t -> 'a -> bool
  val update :
    ?eq:('a -> 'a -> bool) ->
    ('a, 'b) CCList.Assoc.t ->
    'a -> f:('b option -> 'b option) -> ('a, 'b) CCList.Assoc.t
  val remove :
    ?eq:('a -> 'a -> bool) ->
    ('a, 'b) CCList.Assoc.t -> 'a -> ('a, 'b) CCList.Assoc.t
end