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