appendmap alternatives and similar packages
Based on the "Data Structures" category.
Alternatively, view appendmap alternatives based on common mentions on social networks and blogs.
-
parameterized-utils
A set of utilities for using indexed types including containers, equality, and comparison. -
justified-containers
Standard containers, with keys that carry type-level proofs of their own presence.
CodeRabbit: AI Code Reviews for Developers
Do you think we are missing an alternative of appendmap or a related project?
README
appendmap
A Data.Map
wrapper with a Semigroup
and Monoid
instances that delegate to
the individual keys.
import qualified Data.Map as Map
import Data.Map.Append
> one = AppendMap $ Map.fromList [(1, "hello"), (2, "goodbye")]
> two = AppendMap $ Map.fromList [(1, "world"), (3, "again")]
> unAppendMap (one <> two)
fromList [(1, "helloworld"), (2, "goodbye"), (3, "again")]
Motivation
Data.Map
has a Semigroup
instance that keeps the values from the first
argument in case of a key conflict:
import qualified Data.Map as Map
import Data.Map.Append
> Map.fromList [(1, "hello")] <> Map.fromList [(1, "goodbye")]
fromList [(1, "hello")]
A different instance has been suggested for a long time (1, 2), but this is a breaking change and hasn't happened yet (as of 2018-08).
Development
Source code is formatted with hindent
then stylish-haskell
.
Releasing
- Run
./bumpversion patch|minor|major
. This will create a new version and push it to the repository to be released.