{"id":16956377,"url":"https://github.com/bgamari/monoidal-containers","last_synced_at":"2026-01-29T01:14:11.198Z","repository":{"id":26096626,"uuid":"29540710","full_name":"bgamari/monoidal-containers","owner":"bgamari","description":"Maps using values' monoidal structure during merging","archived":false,"fork":false,"pushed_at":"2025-04-05T16:47:51.000Z","size":188,"stargazers_count":42,"open_issues_count":9,"forks_count":33,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-12T23:42:04.031Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"sqshq/PiggyMetrics","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bgamari.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-01-20T16:57:34.000Z","updated_at":"2025-04-05T16:35:27.000Z","dependencies_parsed_at":"2022-09-09T06:21:49.937Z","dependency_job_id":"cd7f959c-9f8d-4eaf-b3fd-a762fcb20f0c","html_url":"https://github.com/bgamari/monoidal-containers","commit_stats":{"total_commits":142,"total_committers":29,"mean_commits":4.896551724137931,"dds":0.7676056338028169,"last_synced_commit":"5c396e2048bb65ca8f768bc23185ae8b0bff5796"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgamari%2Fmonoidal-containers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgamari%2Fmonoidal-containers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgamari%2Fmonoidal-containers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bgamari%2Fmonoidal-containers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bgamari","download_url":"https://codeload.github.com/bgamari/monoidal-containers/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248647257,"owners_count":21139081,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T22:14:47.977Z","updated_at":"2026-01-29T01:14:06.172Z","avatar_url":"https://github.com/bgamari.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# monoidal-containers\n[![Haskell](https://img.shields.io/badge/language-Haskell-orange.svg)](https://haskell.org) [![Hackage](https://img.shields.io/hackage/v/monoidal-containers.svg)](https://hackage.haskell.org/package/monoidal-containers) [![Hackage CI](https://matrix.hackage.haskell.org/api/v2/packages/monoidal-containers/badge)](https://matrix.hackage.haskell.org/#/package/monoidal-containers) [![Github CI](https://github.com/bgamari/monoidal-containers/workflows/Cabal/badge.svg)](https://github.com/bgamari/monoidal-containers/actions) [![BSD3 License](https://img.shields.io/badge/license-BSD3-blue.svg)](https://github.com/bgamari/monoidal-containers/blob/master/LICENSE)\n\n\n\nOften when working with the containers offered by the `containers` and \n`unordered-containers` packages one would prefer the monoidal structure \nof the values to be used when resolving conflicts between keys when merging \nstructures. Sadly, these are not the semantics offered by the provided\ninstances. This package provides `newtypes` with an appropriate set of\ninstances and utility functions to make them usable.\n\n## Important Note\n\nThis 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`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgamari%2Fmonoidal-containers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbgamari%2Fmonoidal-containers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbgamari%2Fmonoidal-containers/lists"}