sets to .
sets to .plus(get(kv._1).get.getOrElse(monoid.zero), kv._2) but maybe more efficient implementations
merge a set of keys.
merge a set of keys.
The semigroup equivalent to the merge operation of this store
The semigroup equivalent to the merge operation of this store
Uses the monoid and filters zeros on put. On get, empty is replaced with Monoid.zero. This store never returns Future.None. The design choice of never returning None is to make sure users do not mistake zero for meaning empty. Clearly, we cannot tell the difference, but returning zero is assumed to make it less likely the user thinks the key is absent (which this store can never confirm).