timescale.info
Sign inSign up

Haskell · origins, language reports and the evolution of GHC

A history of Haskell and the growth of GHC, from ISWIM, SASL, ML, Hope, KRC and Miranda through language reports, compiler engineering, and major extensions. Gregorian display, UTC. Sources checked 3 November 2026.

Compare the strands

Use Separate by tags for origins, Miranda, Mercury, language reports, GHC developments, GHC extensions, type system, type classes, higher rank types, GADTs, type families, dependent types, linear types, deriving, metaprogramming, Template Haskell, records, syntax, runtime, compiler engineering, ecosystem, or governance. Tags overlap. Attached concept cards explain what the important changes made possible and how similar-looking mechanisms differ.

Miranda is a documented direct predecessor. Mercury is a later related language: its project dates its execution-algorithm design to October 1993 and first public beta to July 1995. Haskell’s creators identify Haskell influencing Mercury, notably type classes. The arrow follows that documented direction; the timeline does not invent Mercury as an ancestor of the original Haskell.

Read the dates by event type

A research paper, language report, compiler feature release, technology preview, alpha and later support milestone are different events. Feature markers normally use the official release-page date of the compiler that provides the specified capability. They do not automatically date invention. Earlier prototypes can precede those releases. A modern manual’s “Since” field can date the named -X flag rather than the underlying capability: the familiar flag interface arrives in 6.8.1, after several features already existed.

Year-only and month-only evidence uses January 1 or the first day only as a plotting anchor. Midnight UTC is not an asserted time of release. Coarse dates have presumptive outlines. The Haskell 98 archive uses both January and February 1999; this timeline follows its explicit February historical-release statement and marks the conflict. The revised online report is dated December 2002, distinct from the January 2003 journal/book publication. Compiler archive migration timestamps are never used as historical release dates.

Follow the major GHC developments

Higher-rank types and newtype deriving; Template Haskell and typed quotations; arrows; GADTs; transactional memory and SMP; named extension controls; type families and closed/injective families; generic deriving; promoted data and polymorphic kinds; constraint kinds; roles and coercions; pattern synonyms; visible type/kind application; quantified constraints; deriving via; standalone kind signatures; linear arrows and later linear bindings; Quick Look impredicativity; record-dot access; type-only data; explicit type abstractions and required arguments; newer literal/pattern syntax; staging imports; specialization; and JavaScript/WebAssembly targets.

Haskell 2010, GHC 9.x and GHC2021/GHC2024 name different things. The reports are language definitions, compiler versions identify implementations, and GHC editions select extension bundles. Library hierarchy changes (Applicative–Monad, Semigroup–Monoid, MonadFail) are labeled library migrations. Runtime/compiler improvements and tools are labeled accordingly; they are not all LANGUAGE flags.

Status matters: 6.8’s associated types are incomplete/unsupported; 6.10’s team reports a reliable reimplementation. Kind work in 7.4 precedes explicit fully supported status in 7.6. Arrows, pattern synonyms, coerce, and the web backends retain the preview qualifications of their cited initial releases. Linear support develops over multiple releases. Dependent Haskell research is not portrayed as a single completed shipped feature. The September 2026 GHC 10 marker is alpha1, not a stable release. The August 2026 revised-report post is an initiative, not an already published replacement standard.

Sources, links and reading guides

Sources are primarily original papers, authors’ publication records, language reports, contemporary GHC notes, official release pages and project announcements. Modern extension documentation supplies semantics while contemporary notes establish historical status. The scope is selective rather than an inventory of every GHC flag, patch release or library. Compiler-specific behavior should be checked against the version in use.

Arrowheads identify documented language influence. Other arcs connect selected chronological or feature-development milestones, with typed explanations in the source entry’s historyLinks metadata. They do not, by themselves, establish causation. Coverage bands are editorial reading guides rather than measured lifetimes or support commitments. The explanatory snippets are illustrative fragments, not complete tested programs.

Start with the authors’ history, Haskell 2010 report, and versioned GHC extension guide. Each event has its own references and date precision.

Media credits

The modern Haskell logo identifies the topic; it is not labeled as the logo used in 1990. Later portraits illustrate the people, and their capture dates are not the dates of the historical events. Wikimedia Commons rights records were checked individually.

117 moments · 1966-01-01T00:00:00Z CE – 2026-10-21T00:00:00Z CE · by @athan · @athan

Haskell Language Server 2.15.0.0 is announced

  • ecosystem
  • tooling

The HLS project announces another editor-tooling release. Language-server functionality depends on supported compiler versions and plugins; it is separate from a GHC language extension. **Event type:** tool release. **Date:** 2026-10-21. **Dating:** Day-level evidence. Gregorian display, UTC. Year-only dates use January 1 and month-only dates use the first day solely as plotting anchors. Midnight does not assert a release time. Coarse dates are marked presumptive. **Sources:** - [Haskell Language Server 2.15.0.0 release | The Haskell Programming Language's blog](https://blog.haskell.org/hls-2-15-0-0/)

Date precision
day
Coordinate convention
Gregorian display, UTC. Year-only dates use January 1 and month-only dates use the first day solely as plotting anchors. Midnight does not assert a release time. Coarse dates are marked presumptive.

Sources

Related

Open Haskell Language Server 2.15.0.0 is announced in the timeline