openchronology01
Download
Offline browser HTML Desktop · Linux (.deb) Desktop · Linux (.AppImage) Desktop · Rocky / RHEL 10 (.rpm) Desktop · macOS Apple silicon (.dmg) Desktop · macOS Intel (.dmg) Desktop · Windows (.exe) Release notes & all downloads
Browser draft

Timeline controls

New here? The tour shows the main controls one at a time.

Modern Haskell logo, public domain, by Darrin A Thompson and Jeffrey Wheeler; illustrative topic cover.

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·A local draft, ready to explore
TimelineAll moments
→

Moment details

Separate by tags

Events with any chosen tag move into a track above the rest of the timeline. Nothing is changed or saved.

Shift or scale times

Each time becomes (time − around) × scale + around + offset, exactly, as comparisons align timelines. A duration’s start or end that follows a moment moves with that moment.

Apply to

Search this timeline

    Durations in this view

      Choose a moment

        Pull requests

        Discussion

        Recommend timeline changes

        Your draft becomes a pull request. The upstream timeline stays unchanged until someone with write access merges it.

        Timeline plugins

        Plugin suites

        A suite adds several plugins at once. Plugins this timeline already has stay as they are.

        Create a suite

        Package this timeline's plugins to add them to other timelines at once. The suite carries each plugin's definition, custom plugins included.

        Plugins

        Plugin editor

        Define metadata fields and a restricted render script. No DOM, network, imports, loops or arbitrary calls. Later plugins override earlier effects. Installing takes effect immediately; publishing makes this version public in the server library.

        Plugin library

        Popularity counts public timelines with the plugin enabled.

        Compare timelines

        Select two to eight timelines visible to your account, or add a JSON file.

        Choose a shared time display

        These timelines use different printers or parsers. Choose the display for this comparison. Original times stay unchanged; use scale and offset to align different coordinate conventions.

        Timeline time display

        These settings belong to this timeline and are included in saved files and server copies. Times stay exact.

        Numeric labels are rounded. SI prefixes work best with unit symbols such as s. A Julian year is exactly 365.25 days.

        Displayed value = (stored time − origin) / scale. For Gregorian display, the displayed unit is one second from 1970-01-01T00:00:00Z.

        Preview uses the current window span and viewport width. Custom helpers: hasView(), viewLeft(), viewRight(), viewSpan(), viewWidth(), unitsPerPixel(), labelResolution(), purpose(). Existing printers and parsers can ignore this context.

        Servers

        The official server is https://timescale.info. You can connect to your own HTTPS servers too, and sign in to several at once: your timelines from each are listed together. Local .och files work without a connection.

        Your OpenChronology account

        Private timelines, collaborators, and public sharing.

        Registration and account security settings are available on the website.

        Share this timeline.

        Collaborators

        Edits saved meanwhile

        Keep your versions to replace what was saved, or use the saved versions to drop your edits to these. Your other edits are saved either way.

        Delete moment?

        Choose date and time

        Uses this timeline’s time display. Leaving the text unchanged preserves the exact coordinate, even when the display rounds it.