{"id":182572,"name":"folds","ecosystem":"hackage","description":"This package is a playground full of comonadic folds.\n\nThis style of fold is documented in \"Cellular Automata, Part II: PNGs and Moore\"\n\nThis package can be seen as what happens if you chase Max Rabkin's \"Beautiful Folding\" to its logical conclusion.\n\nMore information on this approach can be found in the \"Another lovely example of type class morphisms\" and \"More beautiful fold zipping\" posts by Conal Elliott, as well as in Gabriel Gonzales' \"Composable Streaming Folds\"","homepage":"http://github.com/ekmett/folds","licenses":"BSD-3-Clause","normalized_licenses":["BSD-3-Clause"],"repository_url":"https://github.com/ekmett/folds","keywords_array":["bsd3","comonads","data","enumerator","library","Propose Tags"],"namespace":null,"versions_count":17,"first_release_published_at":"2013-09-08T00:20:55.000Z","latest_release_published_at":"2022-05-18T11:18:35.000Z","latest_release_number":"0.7.8","last_synced_at":"2026-05-24T08:54:32.165Z","created_at":"2022-04-05T19:56:19.914Z","updated_at":"2026-05-24T13:04:26.858Z","registry_url":"https://hackage.haskell.org/package/folds","install_command":"cabal install folds","documentation_url":null,"metadata":{},"repo_metadata":{"id":10402128,"uuid":"12555675","full_name":"ekmett/folds","owner":"ekmett","description":"Folds and sequence algebras","archived":false,"fork":false,"pushed_at":"2023-03-12T19:53:23.000Z","size":438,"stargazers_count":19,"open_issues_count":2,"forks_count":11,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-12-08T00:40:16.825Z","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/ekmett.png","metadata":{"files":{"readme":"README.markdown","changelog":"CHANGELOG.markdown","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":"2013-09-03T05:21:25.000Z","updated_at":"2025-10-24T16:55:06.000Z","dependencies_parsed_at":"2024-10-15T06:43:43.052Z","dependency_job_id":"f6e17fb0-5522-4c60-8f35-c98c9dae5fb9","html_url":"https://github.com/ekmett/folds","commit_stats":{"total_commits":229,"total_committers":8,"mean_commits":28.625,"dds":0.3013100436681223,"last_synced_commit":"f24f34e0ac82d0dac2051faef4aad2b4e85a0f15"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/ekmett/folds","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ekmett","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28005409,"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-12-24T02:00:07.193Z","response_time":83,"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"},"owner_record":{"login":"ekmett","name":"Edward Kmett","uuid":"304657","kind":"user","description":"I write a lot of Haskell.","email":"","website":"http://comonad.com","location":"Farmington Hills, MI","twitter":"kmett","company":"Groq","icon_url":"https://avatars.githubusercontent.com/u/304657?v=4","repositories_count":298,"last_synced_at":"2023-04-10T02:32:00.294Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ekmett","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-02T16:37:43.210Z","updated_at":"2023-04-10T02:32:01.377Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ekmett","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ekmett/repositories"},"tags":[{"name":"v0.7.8","sha":"c68f52673833c0b62190971a64dc408c999e0b68","kind":"commit","published_at":"2022-05-18T11:17:40.000Z","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/v0.7.8","html_url":"https://github.com/ekmett/folds/releases/tag/v0.7.8","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ekmett/folds@v0.7.8","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7.8/manifests"},{"name":"v0.7.7","sha":"1633bf488e8301d2ed23d4cd2bddd77fd6521bb6","kind":"commit","published_at":"2021-11-16T11:32:38.000Z","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/v0.7.7","html_url":"https://github.com/ekmett/folds/releases/tag/v0.7.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ekmett/folds@v0.7.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7.7/manifests"},{"name":"v0.7.6","sha":"168fca03d52e0f8c5122b43cdb814dcc3d41671d","kind":"commit","published_at":"2021-02-18T00:25:36.000Z","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/v0.7.6","html_url":"https://github.com/ekmett/folds/releases/tag/v0.7.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ekmett/folds@v0.7.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7.6/manifests"},{"name":"v0.7.5","sha":"43a355a622d1d5e192fab4592ae09f784a37546e","kind":"commit","published_at":"2019-09-27T14:39:08.000Z","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/v0.7.5","html_url":"https://github.com/ekmett/folds/releases/tag/v0.7.5","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ekmett/folds@v0.7.5","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7.5/manifests"},{"name":"v0.7.4","sha":"fde0e132c24f4141ca1c8db06f6eaf3dcc538aa7","kind":"commit","published_at":"2017-07-28T22:52:56.000Z","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/v0.7.4","html_url":"https://github.com/ekmett/folds/releases/tag/v0.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ekmett/folds@v0.7.4","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7.4/manifests"},{"name":"v0.7.3","sha":"6556f5df9a5258ddf47699bfda12a099f2662c1d","kind":"commit","published_at":"2017-04-27T15:22:53.000Z","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/v0.7.3","html_url":"https://github.com/ekmett/folds/releases/tag/v0.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ekmett/folds@v0.7.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7.3/manifests"},{"name":"v0.7.2","sha":"24e35991afcbe4cd2832d3659c94814279e0886f","kind":"commit","published_at":"2017-04-27T13:39:22.000Z","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/v0.7.2","html_url":"https://github.com/ekmett/folds/releases/tag/v0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ekmett/folds@v0.7.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7.2/manifests"},{"name":"v0.7.1","sha":"21c230b64ce7f183657132bc7b56a30c5b2259f4","kind":"commit","published_at":"2016-02-25T17:39:39.000Z","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/v0.7.1","html_url":"https://github.com/ekmett/folds/releases/tag/v0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ekmett/folds@v0.7.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7.1/manifests"},{"name":"v0.7","sha":"34b6c03af90e70e6c347988993863e63d6589de4","kind":"tag","published_at":"2015-12-02T06:06:58.000Z","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/v0.7","html_url":"https://github.com/ekmett/folds/releases/tag/v0.7","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ekmett/folds@v0.7","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.7/manifests"},{"name":"v0.6.3","sha":"593f2be1bb40a8c5010baa1c80c1226138faa5b0","kind":"tag","published_at":"2015-07-09T23:00:17.000Z","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/v0.6.3","html_url":"https://github.com/ekmett/folds/releases/tag/v0.6.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ekmett/folds@v0.6.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.6.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.6.3/manifests"},{"name":"v0.6.2","sha":"61ed687aaf9ec40d203d5db3ebeb1eabee4c0c6f","kind":"tag","published_at":"2014-07-28T08:02:29.000Z","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/v0.6.2","html_url":"https://github.com/ekmett/folds/releases/tag/v0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ekmett/folds@v0.6.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.6.2/manifests"},{"name":"v0.6.1","sha":"0492f589c3bbf9d44c5723cde4924bb35c9a4096","kind":"tag","published_at":"2014-06-08T10:43:55.000Z","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/v0.6.1","html_url":"https://github.com/ekmett/folds/releases/tag/v0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ekmett/folds@v0.6.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.6.1/manifests"},{"name":"v0.6","sha":"60948fcef57c0f314597c43a9c88d9ba3bfcfef4","kind":"tag","published_at":"2014-03-19T16:30:45.000Z","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/v0.6","html_url":"https://github.com/ekmett/folds/releases/tag/v0.6","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ekmett/folds@v0.6","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.6/manifests"},{"name":"v0.5.0.1","sha":"c5b9c20832ab0c2b8b93e8966ffb552c463d55d0","kind":"tag","published_at":"2014-03-19T04:02:33.000Z","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/v0.5.0.1","html_url":"https://github.com/ekmett/folds/releases/tag/v0.5.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ekmett/folds@v0.5.0.1","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.5.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.5.0.1/manifests"},{"name":"v0.3","sha":"651525eeb43ebec54acc33d9e0e05934b892fb9a","kind":"tag","published_at":"2013-09-08T04:43:16.000Z","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/v0.3","html_url":"https://github.com/ekmett/folds/releases/tag/v0.3","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ekmett/folds@v0.3","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.3/manifests"},{"name":"v0.2","sha":"05d269fdfd24e9b7790795d39a1228732b03e037","kind":"tag","published_at":"2013-09-08T02:10:27.000Z","download_url":"https://codeload.github.com/ekmett/folds/tar.gz/v0.2","html_url":"https://github.com/ekmett/folds/releases/tag/v0.2","dependencies_parsed_at":null,"dependency_job_id":null,"purl":"pkg:github/ekmett/folds@v0.2","tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/tags/v0.2/manifests"}]},"repo_metadata_updated_at":"2026-05-24T13:04:26.832Z","dependent_packages_count":1,"downloads":13163,"downloads_period":"total","dependent_repos_count":18,"rankings":{"downloads":12.144673636620515,"dependent_repos_count":13.037581237637752,"dependent_packages_count":10.471884713195818,"stargazers_count":17.65470471884713,"forks_count":11.263068663464255,"docker_downloads_count":null,"average":12.914382593953096},"purl":"pkg:hackage/folds","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/hackage/folds","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/hackage/folds","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/hackage/folds/dependencies","status":null,"funding_links":[],"critical":false,"issue_metadata":{"last_synced_at":"2025-08-28T13:24:36.097Z","issues_count":6,"pull_requests_count":13,"avg_time_to_close_issue":30536185.6,"avg_time_to_close_pull_request":8022731.916666667,"issues_closed_count":5,"pull_requests_closed_count":12,"pull_request_authors_count":10,"issue_authors_count":5,"avg_comments_per_issue":3.3333333333333335,"avg_comments_per_pull_request":0.3076923076923077,"merged_pull_requests_count":10,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekmett%2Ffolds/issues","maintainers":[{"login":"glguy","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/glguy"},{"login":"tomjaguarpaw","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/tomjaguarpaw"},{"login":"michaelt","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/michaelt"},{"login":"RyanGlScott","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/RyanGlScott"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/folds/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/folds/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/folds/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/folds/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/folds/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/folds/codemeta","maintainers":[{"uuid":"ryanglscott","login":"ryanglscott","name":null,"email":null,"url":null,"packages_count":152,"html_url":"https://hackage.haskell.org/user/ryanglscott","role":null,"created_at":"2022-11-14T17:44:35.525Z","updated_at":"2022-11-14T17:44:35.525Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/maintainers/ryanglscott/packages"},{"uuid":"EricMertens","login":"EricMertens","name":null,"email":null,"url":null,"packages_count":92,"html_url":"https://hackage.haskell.org/user/EricMertens","role":null,"created_at":"2022-11-14T17:44:35.518Z","updated_at":"2022-11-14T17:44:35.518Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/maintainers/EricMertens/packages"},{"uuid":"EdwardKmett","login":"EdwardKmett","name":null,"email":null,"url":null,"packages_count":136,"html_url":"https://hackage.haskell.org/user/EdwardKmett","role":null,"created_at":"2022-11-14T17:44:35.492Z","updated_at":"2022-11-14T17:44:35.492Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/maintainers/EdwardKmett/packages"}]}