{"adoption": {"forks": 69, "observed_at": "2026-08-28T04:03:37.904685+00:00", "stars": 1112}, "canonical_url": "https://ross.abutalabs.com/products/software-design-in-haskell", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Software Design in Haskell. A structured set of materials. How to build real-world applications in Haskell.", "domain": ["tutorials", "programming-languages", "developer-tools"], "enriched": true, "function": ["documentation"], "health_score": 20, "homepage": null, "language": "Haskell", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["graninas/software-design-in-haskell"], "name": "graninas/software-design-in-haskell", "platform": [], "pushed_at": "2024-12-18T11:27:13+00:00", "repo": "graninas/software-design-in-haskell", "stars": 1112, "tags": ["haskell", "software-architecture", "design-patterns", "functional-programming", "awesome-list"], "topics": [], "urls": [], "use_cases": ["learn how to structure real-world Haskell applications", "compare free monads, final tagless, mtl, and effect systems", "find Haskell design patterns and best practices", "discover books on functional design and architecture", "find examples of Haskell used in production", "learn the ReaderT and service handle patterns"], "what_it_is": "A curated, structured collection of materials on software design and architecture in Haskell, covering architectural patterns, design principles, best practices, books, and production experience reports. It serves as a companion resource to Alexander Granin's book 'Functional Design and Architecture'.", "when_to_avoid": ["you need a runnable library or framework rather than learning materials", "you are looking for beginner Haskell tutorials rather than architecture topics", "you need officially licensed or maintained documentation"], "when_to_choose": ["you are designing a non-trivial Haskell application and need architectural guidance", "you want a curated reading list on functional software design", "you are evaluating architectural approaches like free monads vs mtl vs effect systems"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/software-design-in-haskell", "repo": "graninas/software-design-in-haskell", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.904685+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:42:43.403511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b1749522a671ce2e0b1fd4651912195dece2de513a3d445b3825a7206c3c997", "fetched_at": "2026-08-28T04:03:37.904685+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graninas/software-design-in-haskell"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.904685+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:42:43.403511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b1749522a671ce2e0b1fd4651912195dece2de513a3d445b3825a7206c3c997", "fetched_at": "2026-08-28T04:03:37.904685+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graninas/software-design-in-haskell"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:42:43.403511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b1749522a671ce2e0b1fd4651912195dece2de513a3d445b3825a7206c3c997", "fetched_at": "2026-08-28T04:03:37.904685+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graninas/software-design-in-haskell"}], "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:37.904685+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.904685+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.904685+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:42:43.403511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b1749522a671ce2e0b1fd4651912195dece2de513a3d445b3825a7206c3c997", "fetched_at": "2026-08-28T04:03:37.904685+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graninas/software-design-in-haskell"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.904685+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.904685+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:42:43.403511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b1749522a671ce2e0b1fd4651912195dece2de513a3d445b3825a7206c3c997", "fetched_at": "2026-08-28T04:03:37.904685+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graninas/software-design-in-haskell"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.904685+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.904685+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.904685+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:42:43.403511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b1749522a671ce2e0b1fd4651912195dece2de513a3d445b3825a7206c3c997", "fetched_at": "2026-08-28T04:03:37.904685+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graninas/software-design-in-haskell"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.904685+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:37.904685+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:42:43.403511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b1749522a671ce2e0b1fd4651912195dece2de513a3d445b3825a7206c3c997", "fetched_at": "2026-08-28T04:03:37.904685+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graninas/software-design-in-haskell"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:42:43.403511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b1749522a671ce2e0b1fd4651912195dece2de513a3d445b3825a7206c3c997", "fetched_at": "2026-08-28T04:03:37.904685+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graninas/software-design-in-haskell"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:42:43.403511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b1749522a671ce2e0b1fd4651912195dece2de513a3d445b3825a7206c3c997", "fetched_at": "2026-08-28T04:03:37.904685+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graninas/software-design-in-haskell"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:42:43.403511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1b1749522a671ce2e0b1fd4651912195dece2de513a3d445b3825a7206c3c997", "fetched_at": "2026-08-28T04:03:37.904685+00:00", "kind": "readme", "missing": false, "url": "https://github.com/graninas/software-design-in-haskell"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2450, "days_push": 623, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}