{"slug": "history-of-dh-dependent-types-in-haskell-contributions", "title": "History of DH (Dependent Types in Haskell) contributions", "summary": "The Haskell development roadmap for Dependent Types (DH) will be updated with links to key research papers, including PhD theses by Adam Gundry (2013) and Richard A. Eisenberg (2016), a specification by Stephanie Weirich et al. (2017), and a graded dependent type system paper by Choudhury et al. (2021). The main theoretical questions are whether to combine term and type languages in Core and how to integrate dependent types with linear types, with a long-term preference for a unified Core but a phase-separated approach as a safer incremental step.", "body_md": "There’s more than one way to get to a Dependent Core. Various formalisms are presented in:\n\n[Type Inference, Haskell and Dependent Types](https://adam.gundry.co.uk/pub/thesis/), PhD thesis by Adam Gundry (2013)\n[Dependent Types in Haskell: Theory and Practice](https://richarde.dev/papers/2016/thesis/eisenberg-thesis.pdf), PhD thesis by Richard A. Eisenberg (2016)\n[A Specification for Dependently-Typed Haskell](https://richarde.dev/papers/2017/dep-haskell-spec/dep-haskell-spec.pdf), by Stephanie Weirich, Antoine Voizard, Pedro Henrique Azevedo de Amorim, and Richard A. Eisenberg (2017)\n[A graded dependent type system with a usage-aware semantics](https://richarde.dev/papers/2021/grad/grad-extended.pdf), by Pritam Choudhury, Harley Eades III, Richard A. Eisenberg, and Stephanie Weirich (2021)\n\nI’m going to update the roadmap with these links.\n\nThe main theoretical questions are:\n\n- Whether to combine the term and type languages within Core (the ambitious vs. the incremental approach).\n- How to combine dependent types with linear types (don’t forget multiplicity polymorphism).\n\nLong-term, I’d prefer a Core that combines the term and type languages. But realistically, if the goal is to get to Π-types via the safest route without reengineering half of GHC, Adam’s thesis presents a compelling phase-separated approach.\n\nHmm. This conversation has proved rather insightful. I think I now realise what Conor was hinting at. Indeed, we could start with a Core that simply adds `foreach`\n\nand `dcase`\n\n, then work on combining terms and types afterwards.", "url": "https://wpnews.pro/news/history-of-dh-dependent-types-in-haskell-contributions", "canonical_source": "https://discourse.haskell.org/t/history-of-dh-dependent-types-in-haskell-contributions/11242?page=2#post_34", "published_at": "2026-08-14 13:20:28+00:00", "updated_at": "2026-08-14 13:40:46.160476+00:00", "lang": "en", "topics": ["artificial-intelligence", "machine-learning", "large-language-models", "robotics", "autonomous-vehicles"], "entities": ["Adam Gundry", "Richard A. Eisenberg", "Stephanie Weirich", "Antoine Voizard", "Pedro Henrique Azevedo de Amorim", "Pritam Choudhury", "Harley Eades III", "GHC"], "alternates": {"html": "https://wpnews.pro/news/history-of-dh-dependent-types-in-haskell-contributions", "markdown": "https://wpnews.pro/news/history-of-dh-dependent-types-in-haskell-contributions.md", "text": "https://wpnews.pro/news/history-of-dh-dependent-types-in-haskell-contributions.txt", "jsonld": "https://wpnews.pro/news/history-of-dh-dependent-types-in-haskell-contributions.jsonld"}}