Popularity
1.4
Growing
Activity
0.0
Stable
2
2
0

Monthly Downloads: 34
Programming language: Haskell
License: BSD 3-clause "New" or "Revised" License
Tags: Data Structures    
Latest version: v0.1.5

appendmap alternatives and similar packages

Based on the "Data Structures" category.
Alternatively, view appendmap alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of appendmap or a related project?

Add another 'Data Structures' Package

README

appendmap

Build status Hackage Stackage LTS Hackage dependencies

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.