{"adoption": {"forks": 209, "observed_at": "2026-08-28T04:05:10.687744+00:00", "stars": 1608}, "canonical_url": "https://ross.abutalabs.com/products/hlint", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Haskell source code suggestions", "domain": ["developer-tools", "programming-languages"], "enriched": true, "function": ["linter", "static-site-generator", "developer-tools"], "health_score": 88, "homepage": null, "language": "Haskell", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["ndmitchell/hlint"], "name": "ndmitchell/hlint", "platform": ["cli", "cross-platform"], "pushed_at": "2026-07-27T16:41:41+00:00", "repo": "ndmitchell/hlint", "stars": 1608, "tags": ["haskell", "static-analysis", "code-suggestions", "refactoring", "code-review"], "topics": [], "urls": [], "use_cases": ["suggest improvements to my haskell code", "find redundant code in haskell modules", "simplify overly complex haskell expressions", "enforce haskell code style in CI", "get hints for better library functions to use"], "what_it_is": "HLint is a command-line linter for Haskell source code that suggests improvements such as alternative functions, code simplifications, and redundancies. Hints can be customized, and it analyzes modules in isolation so it works even on code that does not type-check.", "when_to_avoid": ["you need type-aware analysis across modules", "your code relies heavily on custom preprocessors or RebindableSyntax", "you lint a language other than Haskell"], "when_to_choose": ["you write or review Haskell code and want automated improvement suggestions", "you want a linter that works on non-type-checking code", "you need customizable lint hints for a Haskell codebase"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/hlint", "repo": "ndmitchell/hlint", "role": "main", "score": 65}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.687744+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:51:34.930810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f89b83e52105b0d1702b3bd165d02c0c15a39492812514ed339d7b8fc8b8dd20", "fetched_at": "2026-08-28T04:05:10.687744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ndmitchell/hlint"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.687744+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:51:34.930810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f89b83e52105b0d1702b3bd165d02c0c15a39492812514ed339d7b8fc8b8dd20", "fetched_at": "2026-08-28T04:05:10.687744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ndmitchell/hlint"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:51:34.930810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f89b83e52105b0d1702b3bd165d02c0c15a39492812514ed339d7b8fc8b8dd20", "fetched_at": "2026-08-28T04:05:10.687744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ndmitchell/hlint"}], "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:05:10.687744+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.687744+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.687744+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:51:34.930810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f89b83e52105b0d1702b3bd165d02c0c15a39492812514ed339d7b8fc8b8dd20", "fetched_at": "2026-08-28T04:05:10.687744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ndmitchell/hlint"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.687744+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.687744+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:51:34.930810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f89b83e52105b0d1702b3bd165d02c0c15a39492812514ed339d7b8fc8b8dd20", "fetched_at": "2026-08-28T04:05:10.687744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ndmitchell/hlint"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.687744+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.687744+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.687744+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:51:34.930810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f89b83e52105b0d1702b3bd165d02c0c15a39492812514ed339d7b8fc8b8dd20", "fetched_at": "2026-08-28T04:05:10.687744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ndmitchell/hlint"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.687744+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.687744+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:51:34.930810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f89b83e52105b0d1702b3bd165d02c0c15a39492812514ed339d7b8fc8b8dd20", "fetched_at": "2026-08-28T04:05:10.687744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ndmitchell/hlint"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:51:34.930810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f89b83e52105b0d1702b3bd165d02c0c15a39492812514ed339d7b8fc8b8dd20", "fetched_at": "2026-08-28T04:05:10.687744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ndmitchell/hlint"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:51:34.930810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f89b83e52105b0d1702b3bd165d02c0c15a39492812514ed339d7b8fc8b8dd20", "fetched_at": "2026-08-28T04:05:10.687744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ndmitchell/hlint"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:51:34.930810+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f89b83e52105b0d1702b3bd165d02c0c15a39492812514ed339d7b8fc8b8dd20", "fetched_at": "2026-08-28T04:05:10.687744+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ndmitchell/hlint"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4789, "days_push": 37, "days_rel": 577, "gap_med": null, "n_releases_24m": 1}, "score": 65, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}