{"id":28824121,"url":"https://github.com/parsaalizadeh/fenwick-tree","last_synced_at":"2026-01-20T16:37:08.772Z","repository":{"id":293832165,"uuid":"962110173","full_name":"ParsaAlizadeh/fenwick-tree","owner":"ParsaAlizadeh","description":"Implementation of mutable Fenwick trees as a Haskell library","archived":false,"fork":false,"pushed_at":"2025-05-28T14:29:33.000Z","size":46,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-19T01:03:42.101Z","etag":null,"topics":["data-structures","fenwick-tree","haskell"],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ParsaAlizadeh.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,"zenodo":null}},"created_at":"2025-04-07T17:00:43.000Z","updated_at":"2025-05-28T14:31:35.000Z","dependencies_parsed_at":"2025-05-17T12:42:55.570Z","dependency_job_id":null,"html_url":"https://github.com/ParsaAlizadeh/fenwick-tree","commit_stats":null,"previous_names":["parsaalizadeh/fenwick-tree"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ParsaAlizadeh/fenwick-tree","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ParsaAlizadeh%2Ffenwick-tree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ParsaAlizadeh%2Ffenwick-tree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ParsaAlizadeh%2Ffenwick-tree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ParsaAlizadeh%2Ffenwick-tree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ParsaAlizadeh","download_url":"https://codeload.github.com/ParsaAlizadeh/fenwick-tree/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ParsaAlizadeh%2Ffenwick-tree/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260660113,"owners_count":23043488,"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":["data-structures","fenwick-tree","haskell"],"created_at":"2025-06-19T01:03:43.322Z","updated_at":"2026-01-20T16:37:08.766Z","avatar_url":"https://github.com/ParsaAlizadeh.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mutable-fenwick\n\n[![Hackage Version](https://img.shields.io/hackage/v/mutable-fenwick?color=blue)](https://hackage.haskell.org/package/mutable-fenwick-0.1.1.0)\n\nThis package provides an implementation of mutable\n[Fenwick trees](https://en.wikipedia.org/wiki/Fenwick_tree) in Haskell.\n\n## Features\n\nIt is maximally generic. Each operation of Fenwick tree is implemented using a subset of constraints\nfrom `Semigroup`, `Monoid`, or `Commutative`, chosen carefully based on the nature of each\noperation. This is mostly possible due to how Haskell typeclasses work, and provides different\nfunctionality based on the constraints provided by the underlying element type.\n\nIt is fast and efficient. Every operation is marked as inline, meaning that they will be optimized\nfor the given element type. With `ArrayC` and `VectorC` from this package, it is possible to use\nunboxed arrays and vectors for newtypes that implement a custom algebra (e.g. `Sum`, `Product` or\n`Xor`). An implementation using this library can be as fast as a C/C++ implementation.\n\nIt is the only Haskell library (I believe, as of this date) that provides Fenwick trees. \n- The [FenwickTree](https://hackage.haskell.org/package/FenwickTree) package is more similar to a\n  Segment tree, and it does not have a generic interface for the data structure.\n- The [binary-indexed-tree](https://hackage.haskell.org/package/binary-indexed-tree) package\n  has an interface for ST monad, but the implementation is only limited to `Sum` monoid.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparsaalizadeh%2Ffenwick-tree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparsaalizadeh%2Ffenwick-tree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparsaalizadeh%2Ffenwick-tree/lists"}