{"adoption": {"forks": 77, "observed_at": "2026-08-28T04:03:28.328667+00:00", "stars": 1072}, "canonical_url": "https://ross.abutalabs.com/products/polysemy", "card": {"archived": false, "artifact_type": "library", "description": ":gemini: higher-order, no-boilerplate monads", "domain": ["programming-languages", "developer-tools"], "enriched": true, "function": ["programming-language", "developer-tools"], "health_score": 27, "homepage": null, "language": "Haskell", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "stable", "member_repos": ["polysemy-research/polysemy"], "name": "polysemy-research/polysemy", "platform": ["jvm"], "pushed_at": "2025-03-15T12:15:30+00:00", "repo": "polysemy-research/polysemy", "stars": 1072, "tags": ["haskell", "effects-system", "monads", "free-monads", "extensible-effects", "higher-order-effects", "dsl", "algorithms"], "topics": [], "urls": [], "use_cases": ["write effectful Haskell code without mtl boilerplate", "separate business logic from implementation details in Haskell", "define custom effects with minimal boilerplate", "use multiple instances of the same effect like two Reader environments", "model typed errors without ugly hacks", "write higher-order effects like bracket and local", "port code from transformers/mtl style to an effects system"], "what_it_is": "Polysemy is a Haskell library for building higher-order, low-boilerplate effect systems (extensible effects), letting you write domain-specific languages that separate business logic from implementation details. It composes better than mtl with no O(n^2) instances problem and supports multiple copies of the same effect.", "when_to_avoid": ["you're not programming in Haskell", "you need maximum runtime performance, as polysemy's interpreter overhead can be significant", "your team already has a mature mtl or fused-effects codebase", "you want a library with a large ecosystem of prebuilt effects"], "when_to_choose": ["you're writing Haskell and want composable effects without functional dependencies", "you need multiple copies of the same effect in one stack", "you want to define new effects in a few lines and interpreters as plain functions", "you're tired of mtl's O(n^2) instances problem"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/polysemy", "repo": "polysemy-research/polysemy", "role": "main", "score": 28}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:28.328667+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:53:42.980645+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa3cf9b315ccda5d6ad6a25c744e7d070d32b05812b9f0f0dacce17214f5ad88", "fetched_at": "2026-08-28T04:03:28.328667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/polysemy-research/polysemy"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:28.328667+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:53:42.980645+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa3cf9b315ccda5d6ad6a25c744e7d070d32b05812b9f0f0dacce17214f5ad88", "fetched_at": "2026-08-28T04:03:28.328667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/polysemy-research/polysemy"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:53:42.980645+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa3cf9b315ccda5d6ad6a25c744e7d070d32b05812b9f0f0dacce17214f5ad88", "fetched_at": "2026-08-28T04:03:28.328667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/polysemy-research/polysemy"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:28.328667+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:28.328667+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:28.328667+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:53:42.980645+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa3cf9b315ccda5d6ad6a25c744e7d070d32b05812b9f0f0dacce17214f5ad88", "fetched_at": "2026-08-28T04:03:28.328667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/polysemy-research/polysemy"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:28.328667+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:28.328667+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:53:42.980645+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa3cf9b315ccda5d6ad6a25c744e7d070d32b05812b9f0f0dacce17214f5ad88", "fetched_at": "2026-08-28T04:03:28.328667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/polysemy-research/polysemy"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:28.328667+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:28.328667+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:28.328667+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:53:42.980645+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa3cf9b315ccda5d6ad6a25c744e7d070d32b05812b9f0f0dacce17214f5ad88", "fetched_at": "2026-08-28T04:03:28.328667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/polysemy-research/polysemy"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:28.328667+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:28.328667+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:53:42.980645+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa3cf9b315ccda5d6ad6a25c744e7d070d32b05812b9f0f0dacce17214f5ad88", "fetched_at": "2026-08-28T04:03:28.328667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/polysemy-research/polysemy"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:53:42.980645+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa3cf9b315ccda5d6ad6a25c744e7d070d32b05812b9f0f0dacce17214f5ad88", "fetched_at": "2026-08-28T04:03:28.328667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/polysemy-research/polysemy"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:53:42.980645+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa3cf9b315ccda5d6ad6a25c744e7d070d32b05812b9f0f0dacce17214f5ad88", "fetched_at": "2026-08-28T04:03:28.328667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/polysemy-research/polysemy"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:53:42.980645+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aa3cf9b315ccda5d6ad6a25c744e7d070d32b05812b9f0f0dacce17214f5ad88", "fetched_at": "2026-08-28T04:03:28.328667+00:00", "kind": "readme", "missing": false, "url": "https://github.com/polysemy-research/polysemy"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 11, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2758, "days_push": 536, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 28, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}