keys that map to an accumulator value with an associated fold operation
module Key : sig ... end
val set : t ‑> ('a, 'b) Key.t ‑> 'b ‑> t
reset the accumulator
val find : t ‑> ('a, 'b) Key.t ‑> 'b
the current accumulator
val add : t ‑> ('a, 'b) Key.t ‑> 'a ‑> t
fold value into accumulator
val change : t ‑> ('a, 'b) Key.t ‑> f:('b ‑> 'b) ‑> t
accumulator update