Often when working with the containers offered by the containers
and
unordered-containers
packages one would prefer the monoidal structure
of the values to be used when resolving conflicts between keys when merging
structures. Sadly, these are not the semantics offered by the provided
instances. This package provides newtypes
with an appropriate set of
instances and utility functions to make them usable.
This library is designed to be a drop-in replacement for Data.Map
and similar. Absolutely no other semantic changes are introduced in functions like fromList
or insert
. They are still left-biased like Data.Map
's. The only difference is in instances for Semigroup
.