{"id":16663879,"url":"https://github.com/sgraf812/pomaps","last_synced_at":"2025-08-12T23:02:19.228Z","repository":{"id":56875038,"uuid":"100616263","full_name":"sgraf812/pomaps","owner":"sgraf812","description":"Haskell data structure for maps and sets with partially ordered keys","archived":false,"fork":false,"pushed_at":"2021-02-07T20:05:58.000Z","size":332,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-09T19:04:19.787Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sgraf812.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-08-17T15:07:04.000Z","updated_at":"2023-12-06T13:35:54.000Z","dependencies_parsed_at":"2022-08-20T10:40:35.280Z","dependency_job_id":null,"html_url":"https://github.com/sgraf812/pomaps","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/sgraf812/pomaps","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgraf812%2Fpomaps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgraf812%2Fpomaps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgraf812%2Fpomaps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgraf812%2Fpomaps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sgraf812","download_url":"https://codeload.github.com/sgraf812/pomaps/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgraf812%2Fpomaps/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270149345,"owners_count":24535728,"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","status":"online","status_checked_at":"2025-08-12T02:00:09.011Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-12T10:42:22.899Z","updated_at":"2025-08-12T23:02:19.180Z","avatar_url":"https://github.com/sgraf812.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [`pomaps`][pomaps] [![Build Status](https://github.com/sgraf812/pomaps/workflows/Haskell-CI/badge.svg)](https://github.com/sgraf812/pomaps/actions) [![Hackage](https://img.shields.io/hackage/v/pomaps.svg)](https://hackage.haskell.org/package/pomaps)\n\nReasonably fast maps (and possibly sets) based on keys satisfying [`PartialOrd`](https://hackage.haskell.org/package/lattices-1.6.0/docs/Algebra-PartialOrd.html#t:PartialOrd).\n\nThis package tries to load off as much work as possible to the excellent [`containers`](https://hackage.haskell.org/package/containers) library, in order to achieve acceptable performance.\nThe interface is kept as similar to [`Data.Map.{Strict,Lazy}`](https://hackage.haskell.org/package/containers/docs/Data-Map-Strict.html) as possible, which is an excuse for somewhat lacking documentation.\n\n`POMap`s basically store a decomposition of totally ordered chains (e.g. something `Map`s can handle).\nFunctionality and strictness properties should be pretty much covered by the testsuite.\nBut it's not battle-tested yet, so if you encounter space leaks in the implementation, let me know.\n\nA rather naive implementation leads to `O(w*n*log n)` lookups, where `w` is the width of the decomposition (which should be the size of the biggest anti-chain).\nThis is enough for me at the moment to get things going, but there is room for improvement ([Sorting and Selection in Posets](https://arxiv.org/abs/0707.1532)).\nLet me know if things are too slow and I'll see what I can do!\n\n[pomaps]: https://github.com/sgraf812/pomaps\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsgraf812%2Fpomaps","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsgraf812%2Fpomaps","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsgraf812%2Fpomaps/lists"}