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