Great moments in Haskell history

April 1990Haskell 1.0

The first specificationHaskell 1.0 of Haskell, called the “Haskell Report”.

The preface explains where the idea came about:

In September of 1987 a meeting was held at the conference on Functional Programming Languages and Computer Architecture in Portland, Oregon, to discuss an unfortunate situation in the functional programming community: there had come into being more than a dozen non-strict, purely functional programming languages, all similar in expressive power and semantic underpinnings. There was a strong consensus at this meeting that more widespread use of this class of functional languages was being hampered by the lack of a common language. It was decided that a committee should be formed to design such a language, providing faster communication of new ideas, a stable foundation for real applications development, and a vehicle through which others would be encouraged to use functional languages.

It goes on to list the goals for the language, including among them:

The committee hopes that HASKELL can serve as a basis for future research in language design. We hope that extensions or variants of the language may appear, incorporating experimental features.

Indeed, the history of Haskell is a long saga full of extensions and experimental features.

The acknowledgements section includes a list of important influences on Haskell. “Without these forerunners Haskell would not have been possible”: Alonzo Church, J. Barkley Rosser, Haskell Curry, Lisp, Scheme, ISWIM, FP, ML, Hope, and Miranda.

The Report refers to its fifteen authors as “The Haskell Committee”: Paul Hudak, Philip Wadler, Arvind, Brian Boutel, Jon Fairbairn, Joseph Fasel, Kevin Hammond, John Hughes, Thomas Johnsson, Dick Kieburtz, Rishiyur Nikhil, Simon Peyton Jones, Mike Reeve, David Wise, and Jonathan Young.

August 1991Haskell 1.1Haskell 1.1

March 1992Haskell 1.2Haskell 1.2

June 1995 (?)GHC 0.29Documentation for GHC 0.29

May 1996Haskell 1.3Haskell 1.3

April 1997Haskell 1.4Haskell 1.4

March 1997GHC 2.02Release notes for GHC 2.02

The first release of GHC for Haskell 1.4.

April 1997GHC 3.02Release notes for GHC 3.02

April 1997GHC 2.03Release notes for GHC 2.03

June 1997GHC 2.04Release notes for GHC 2.04

September 1997GHC 2.06Release notes for GHC 2.06

October 1997GHC 2.08Release notes for GHC 2.08

November 1997GHC 2.09Release notes for GHC 2.09

December 1997GHC 2.10Release notes for GHC 2.10

December 1998GHC 4.02Release notes for GHC 4.02

This version adds support for scoped type variables.Scoped type variables in GHC 4.04 (the first release containing documentation for this feature)

  • Introduces pattern type signatures and result type signatures.
  • This feature will be described in Lexically-scoped type variables.
  • Scoped type variables will be significantly modified later in GHC 6.4, and result type signatures will be removed in GHC 6.6.

February 1999Haskell 98

The goals of Haskell 98 are stated in this new ReportHaskell 98 as follows:

Haskell has evolved continuously since its original publication. […] At the 1997 Haskell Workship in Amsterdam, it was decided that a stable variant of Haskell was needed; this stable language is the subject of this Repport, and is called “Haskell 98”.

[…] Haskell will continue to evolve. At the time of writing there are Haskell implementations that support existential types, local universal polymorphism, rank 2 types, multi-parameter type classes, pattern guards, exceptions, concurrency, and more besides. Haskell 98 does not impede these developments. Instead, it provides a stable point of reference, so that those who wish to write text books, or use Haskell for teaching, can do so in the knowledge that Haskell 98 will continue to exist.

Indeed both aspects of this proved true:

  • Haskell 98 remained as the latest language specification until Haskell 2010.
  • Haskell nevertheless continued to evolve.

Minor revisions to Haskell 98 were published a few years later.

July 1999GHC 4.04Release notes for GHC 4.04

New features:

  • The -funbox-strict-fields flag
  • The RULES pragma, used for list fusion
  • Asynchronous exceptions

January 2000GHC 4.06Release notes for GHC 4.06

July 2000GHC 4.08Release notes for GHC 4.08

Added support for implicit parameters, enabled by the -fglasgow-exts flag. The -fimplicit-params flag would later be added in GHC 6.2, ultimately replaced by -XImplicitParams in GHC 6.8.1.

Added the DEPRECATED pragma.

February 2001GHC 4.08.2Mailing list: GHC 4.08.2 released

A bugfix release only, with no new features.

April 2001GHC 5.00Mailing list: GHC 5.00 releasedRelease notes for GHC 5.00

Introduced GHCi.

New language features:

  • Parallel list comprehensions
  • Functional dependencies

This version introduces the -fno-monomorphism-restriction flagGHC 5.00 flag referenceGit commit introducing -fno-monomorphism-restriction to disable the monomorphism restriction. This flag has the same effect as the NoMonomorphismRestriction extension which will be introduced in GHC 6.6. Consequently the -fno-monomorphism-restriction flag will be deprecated along with the appearance of -X flags in GHC 6.8.1 in favor of -XNoMonomorphismRestriction.

May 2001GHC 5.00.1Mailing list: GHC 5.00.1 released

A bugfix release only, with no new features.

June 2001GHC 5.00.2Mailing list: GHC 5.00.2 released

A bugfix release only, with no new features.

September 2001GHC 5.02Mailing list: GHC 5.02 releasedRelease notes for GHC 5.02

Introduced the GHCRTS environment variable.

Added the -fno-code flag, used to only run the typechecker without actually compiling the code.

Allowed defining datatypes with no constructors. This makes it possible to define the Void type.Current API documentation for Void However, Void did not appear in the base library until GHC 7.10.1 much later.

November 2001GHC 5.02.1Mailing list: GHC 5.02.1 released

A bugfix release only, with no new features.

January 2002Lexically-scoped type variablesLexically scoped type variables

This paper compares two alternative designs for scoped type variables and explains the feature as it was implemented in GHC 4.02.

Authors: Simon Peyton Jones and Mark Shields

January 2002GHC 5.02.2Mailing list: GHC 5.02.2 released

April 2002GHC 5.02.3Mailing list: GHC 5.02.3 released

July 2002GHC 5.04Mailing list: GHC 5.04 releasedRelease notes for GHC 5.04

Rank-2 types are generalizedArbitrary-rank polymorphism in GHC 5.04 to rank-N types. This feature will become the RankNTypes extension in GHC 6.6.

Generalized newtype deriving is introduced.Generalised derived instances for newtypes in GHC 5.04 This feature will become the GeneralizedNewtypeDeriving extension in GHC 6.6.

New GHCi commands: :browse, :set args, :set prog, :show bindings, and :show modules

September 2002GHC 5.04.1Mailing list: GHC 5.04.1 released

December 2002Haskell 98, revisedHaskell 98, revised

This publication is a minor revision of Haskell 98. Simon Peyton Jones writes in the preface:

After a year or two, many typographical errors and infelicities had been spotted. I took on the role of gathering and acting on these corrections, with the following goals:

  • Correct typographical errors.
  • Clarify obscure passages.
  • Resolve ambiguities.
  • With reluctance, make small changes to make the overall language more consistent.

This is the last Report until Haskell 2010.

December 2002GHC 5.04.2Mailing list: GHC 5.04.2 released

March 2003GHC 5.04.3Mailing list: GHC 5.04.3 released

May 2003GHC 6.0Mailing list: GHC 6.0 releasedRelease notes for GHC 6.0

Template Haskell first appears in this release.

  • The Haskell API for this feature, notably including the Q type, is located in a module named Language.Haskell.THSyntaxLanguage.Haskell.THSyntax in GHC 6.0 in the haskell-src package. It will remain here until GHC 6.4.

Introduced recursive do-notation (the mdo keyword)

Introduced the Data class.API documentation for Data in GHC 6.0

Added support for deriving Typeable instances.

July 2003GHC 6.0.1Mailing list: GHC 6.0.1 released

December 2003GHC 6.2Mailing list: GHC 6.2 releasedRelease notes for GHC 6.2

Added the UNPACK pragma.

Added the -main-is flag, which allows you to use something other than Main.main as a program’s entry point.

Added expression evaluation mode, which evaluates a single expression entered as a command-line argument:

$ ghc -e '2+2'

Added arrow notation.Arrow notation in the GHC 6.2 documentation

Added the -fimplicit-params flag to enable implicit parameters. This feature had previously been introduced in GHC 4.08 and had at that time been enabled by -fglasgow-exts. The flag would later be replaced by -XImplicitParams when -X flags were introduces in GHC 6.8.1.

March 2004GHC 6.2.1Mailing list: GHC 6.2.1 releasedRelease notes for GHC 6.2.1

Added the -threaded and -debug link options.

October 2004GHC 6.2.2Mailing list: GHC 6.2.2 released

A bugfix release only, with no new features.

January 2005Associated types with classAssociated types with class

This paper introduces the idea of associated types. The beginnings of this feature will appear in GHC 6.8.1.

Author: Simon Peyton Jones

March 2005GHC 6.4Mailing list: GHC 6.4 releasedRelease notes for GHC 6.4

New features:

  • Generalized algebraic datatypes (GADTs)
  • Software transactional memory (STM)

This version expands upon the scoped type variablesScoped type variables in GHC 6.4 feature previously introduced in GHC 4.02.

  • Declaration type signatures that use the forall keyword can now bind type variables over the scope of the corresponding definition.

This is the first version of GHC to include Cabal.Cabal in GHC 6.4.2

The OPTIONS pragma was renamed to OPTIONS_GHC.

Changes to Template Haskell (first introduced in GHC 6.0):

  • The API moved from the haskell-src package into a new package called template-haskell.
  • The Language.Haskell.THSyntax moduleLanguage.Haskell.TH.Syntax in GHC 6.4 was renamed to Language.Haskell.TH.Syntax.

September 2005GHC 6.4.1Mailing list: GHC 6.4.1 releasedRelease notes for GHC 6.4.1

November 2005Applicative programming with effectsApplicative programming with effects (PDF), published in Journal of Functional Programming in January 2008

This paper introduces applicative functors, which will appear in GHC 6.6.

Authors: Conor McBride and Ross Paterson

April 2006GHC 6.4.2Mailing list: GHC 6.4.2 releasedRelease notes for GHC 6.4.2

Added the GHCi :set command for customizing your GHCi prompt.

July 2006The essence of the iterator patternThe essence of the iterator pattern (PDF), published in Journal of Functional Programming in July 2009MPC/AMAST 2006 talk schedule

This paper elaborates on the utility of the Applicative class (previously introduced by Applicative programming with effects), explaining how applicative traversal in Haskell resembles looping in many imperative languages.

Authors: Jeremy Gibbons and Bruno C. d. S. Oliveira

October 2006GHC 6.6Mailing list: GHC 6.6 releasedRelease notes for GHC 6.6

New features:

  • BangPatterns
  • The :main command in GHCi
  • GADTs can now use record syntax and deriving clauses.

This version support postfix operators.Postfix operators in GHC 6.6 The documentation notes: “Since this extension goes beyond Haskell 98, it should really be enabled by a flag; but in fact it is enabled all the time.” This will be done later when GHC 6.10.1 adds the PostfixOperators language extension.

This version makes some changesScoped type variables in GHC 6.6 to how scoped type variables work.

Introduced the LANGUAGE pragma for enabling language extensions.

  • Prior to this version, the only way to enable language extensions was to use a compiler flag; for example, to enable scoped type variables, you would either invoke the ghc executable with the -fscoped-type-variables flag or add {-# OPTIONS_GHC -fscoped-type-variables #-} to Haskell source file. Now you also have the option of enabling the extension by adding {-# LANGUAGE ScopedTypeVariables #-} to a Haskell source file.
  • Complete list of extensionsExtensions supported by the LANGUAGE pragma in GHC 6.6 that can be enabled by the LANGUAGE pragma as of this GHC version: Arrows, BangPatterns, ContextStack, CPP, EmptyDataDecls, ExistentialQuantification, ExtensibleRecords, FlexibleContexts, FlexibleInstances, ForeignFunctionInterface, FunctionalDependencies, GeneralizedNewtypeDeriving, Generics, HereDocuments, ImplicitParams, IncoherentInstances, InlinePhase, MultiParamTypeClasses, NamedFieldPuns, NoImplicitPrelude, NoMonomorphismRestriction, OverlappingInstances, ParallelListComp, PatternGuards, PolymorphicComponents, Rank2Types, RankNTypes, RecursiveDo, RestrictedTypeSynonyms, ScopedTypeVariables, TemplateHaskell, TypeSynonymInstances, UndecidableInstances
  • The -X flag still did not exist; this will appear in GHC 6.8.1.

This GHC version corresponds to base version 2.1,Control.Applicative in GHC 6.6Data.Foldable in GHC 6.6Data.Traversable in GHC 6.6Data.ByteString in GHC 6.6Data.Fixed in GHC 6.6Data.Sequence in GHC 6.6 which introduced some significant new features:

April 2007GHC 6.6.1Mailing list: GHC 6.6.1 releasedRelease notes for GHC 6.6.1GHC 6.6 flag reference

June 2007A History of Haskell: being lazy with classA History of Haskell: being lazy with class

A substantial history of the development of Haskell, written by some of its principal contributors.

Haskell is now more than 15 years old and has been a seedbed for an immense amount of creative energy. We cannot hope to do justice to all of it here, but we take this opportunity to salute all those who have contributed to what has turned out be a wild ride.

Authors: Paul Hudak, John Hughes, Simon Peyton Jones, and Philip Wadler

September 2007Why it’s nice to be quotedWhy it’s nice to be quoted: quasiquoting for Haskell (PDF)

This paper presents quasi-quotation for expressions and patterns in Haskell. The implementation will appear in GHC 6.10.1.

Author: Geoffrey Mainland

November 2007GHC 6.8.1Mailing list: GHC 6.8.1 releasedRelease notes for GHC 6.8.1GHC 6.8.1 flag reference

Introduced the -X flag for enabling language extensions.Git commit introducing the -X flag

  • Prior to this version, most of GHC’s extensions to the Haskell language were enabled using the -fglasgow-exts flag, and a handful of extensions had their own separate flags. For example, to enable scoped type variables when invoking ghc at the command line, previously you would have used the -fscoped-type-variables flag; this new version deprecates that flag, and you now use -XScopedTypeVariables instead.

  • The GHC User’s Guide now says “since: 6.8.1” for many language extensions, even for features that were available in earlier versions of GHC, because this was the first version in which the -X<extension> flag as introduced. For example,Current documentation for GADTs the documentation lists GADTs as appearing in 6.8.1, even though generalized algebraic datatypesGit commit introducing the GADTs extension have actually been available in GHC since version 6.4.

New language extension flags:

Record field disambiguationRecord field disambiguation in GHC 6.8.1 first appears in this release.

This GHC version corresponds to base version 3.0.

The TypeFamilies extension first appears in this version, although it is described in the release notes as “incomplete and not a supported feature”. This feature, also known as “associated types”, was previously presented in Associated types with class.

From here on, GHC adheres to the X.Y.Z version numbering policyVersion numbering policy in GHC 6.8.1 that is still in use today.

December 2007GHC 6.8.2Mailing list: GHC 6.8.2 released

June 2008GHC 6.8.3Mailing list: GHC 6.8.3 released

November 2008GHC 6.10.1Mailing list: GHC 6.10.1 releasedGHC blog: GHC 6.10.1 releasedRelease notes for GHC 6.10.1

Introduced the QuasiQuotes language extension.

  • This syntax was not entirely new; expressions of the form [|...|], [d|...|], and [t|...|] had previouslyTemplate Haskell documentation: compare GHC 6.8.3 and GHC 6.10.1 existed as part of Template Haskell and were referred to as “Oxford brackets”. The new feature was described at the time as “generalized quasi-quotes”, because it expanded upon Oxford brackets to allow users to define their own quasi-quoters in addition to just the built-in Template Haskell ones.
  • This feature had previously been presented in Why it’s nice to be quoted.
  • This release supportsQuasiQuoter API documentation in GHC 6.10.1 quasi-quotes in the two contexts given in the paper: expresssions and patterns. This will be expanded upon in GHC 7.0.1.

The new language extension PostfixOperators is now required to use postfix operators.

  • This feature was previously enabled by default since its introduction in GHC 6.6.

The new language extension ImpredicativeTypes is nowImpredicative polymorphism documentation: compare GHC 6.8.3 and GHC 6.10.1 required to use impredicative polymorphism.

  • This feature was previously enabled by default when it was introduced in GHC 6.8.1.

Other new language extensions:

  • PackageImports
  • TransformListComp
  • ViewPatterns

April 2009GHC 6.10.2Mailing list: GHC 6.10.2 releasedRelease notes for GHC 6.10.2

This GHC version corresponds to base version

May 2009GHC 6.10.3Mailing list: GHC 6.10.3 releasedRelease notes for GHC 6.10.3

July 2009GHC 6.10.4Mailing list: GHC 6.10.4 releasedRelease notes for GHC 6.10.4

December 2009GHC 6.12.1Mailing list: GHC 6.12.1 releasedRelease notes for GHC 6.12.1

New language extension flags:

New compiler flags:

  • -fwarn-dodgy-exports
  • -fwarn-unused-do-bind

This GHC version corresponds to base version

April 2010GHC 6.12.2Mailing list: GHC 6.12.2 releasedRelease notes for GHC 6.12.2

July 2010Haskell 2010Haskell 2010

June 2010GHC 6.12.3Mailing list: GHC 6.12.3 releasedRelease notes for GHC 6.12.3

November 2010GHC 7.0.1Mailing list: GHC 7.0.1 releasedRelease notes for GHC 7.0.1

New language extension flags:

  • Haskell2010
  • Haskell98
  • AlternativeLayoutRule
  • AlternativeLayoutRuleTransitional
  • DatatypeContexts
  • DoAndIfThenElse
  • RebindableSyntax

The QuasiQuotes extension,QuasiQuoter API documentation in GHC 7.0.1 previously introduced in GHC 6.10.1, is expanded to allow quasi-quoters in two additional contexts: types and top-level declarations.

March 2011GHC 7.0.2Mailing list: GHC 7.0.2 releasedRelease notes for GHC 7.0.2

March 2011GHC 7.0.3Mailing list: GHC 7.0.3 releasedRelease notes for GHC 7.0.3

June 2011GHC 7.0.4Mailing list: GHC 7.0.4 releasedRelease notes for GHC 7.0.4

August 2011GHC 7.2.1Mailing list: GHC 7.2.1 releasedRelease notes for GHC 7.2.1

New language extension flags:

  • DefaultSignatures
  • InterruptibleFFI
  • MonadComprehensions
  • NondecreasingIndentation
  • ParallelArrays
  • RelaxedLayout

Changes to language extension flags:

  • Removed Generics, added DeriveGeneric in its place
  • Removed NewQualifiedOperators
  • Removed PArr

Although GADT syntax had existed since the introduction of generalized algebraic datatypes in version 6.4, this version of GHC introduced the GADTSyntax language extension flag, which makes it possible to enable only the syntactic aspects without the additional changes to the type system that GADTs entail.

This version introduced Safe Haskell, along with the language extensions Safe, Trustworthy, and SafeImports.

  • The SafeImports extension turned out to be short-lived; it was removed when Safe Haskell was redesigned for version 7.4.1.

November 2011GHC 7.2.2Mailing list: GHC 7.2.2 releasedRelease notes for GHC 7.2.2

February 2012GHC 7.4.1Mailing list: GHC 7.4.1 releasedRelease notes for GHC 7.4.1

New language extension flags:

  • CApiFFI
  • ConstraintKinds
  • DataKinds
  • PolyKinds
  • TraditionalRecordSyntax

This version includes a redesign of the Safe Haskell feature that was introduced in version 7.2.1.

  • Removed the SafeImports extension and added the Unsafe extension.

June 2012GHC 7.4.2Mailing list: GHC 7.4.2 releasedRelease notes for GHC 7.4.2

September 2012GHC 7.6.1Mailing list: GHC 7.6.1 releasedRelease notes for GHC 7.6.1

New language extensions:

New GHCi features:

  • The -interactive-print flag can be used to customize how results are printed.
  • Added the :seti command

The -fdefer-type-errors flag can turns compilation errors into runtime errors.

This GHC version corresponds to base version

January 2013GHC 7.6.2Mailing list: GHC 7.6.2 releasedRelease notes for GHC 7.6.2

April 2013GHC 7.6.3Mailing list: GHC 7.6.3 releasedRelease notes for GHC 7.6.3

April 2014GHC 7.8.1Mailing list: GHC 7.8.1 releasedRelease notes for GHC 7.8.1

New language extensions:

  • AllowAmbiguousTypes
  • AutoDeriveTypeable
  • EmptyCase
  • JavaScriptFFI
  • NegativeLiterals
  • NullaryTypeClasses
  • NumDecimals
  • OverloadedLists
  • PatternSynonyms
  • RoleAnnotations

Introduced the MINIMAL pragma.

GHCi now disables the monomorphism restriction by default.

Changes to generalized newtype deriving:

This GHC version corresponds to base version

  • New: Data.Bool.bool :: a -> a -> Bool -> a, the catamorphism for Bool

April 2014GHC 7.8.2Mailing list: GHC 7.8.2 releasedRelease notes for GHC 7.8.2

July 2014GHC 7.8.3Mailing list: GHC 7.8.3 releasedRelease notes for GHC 7.8.3

June 2014Safe, zero-cost coercions for HaskellSafe, zero-cost coercions for Haskell

This paper describes the coercion and role-checking features implemented in GHC 7.8.1.

Authors: Joachin Breitner, Richard Eisenberg, Simon Peyton Jones, and Stephanie Weirich

December 2014GHC 7.8.4Mailing list: GHC 7.8.4 releasedRelease notes for GHC 7.8.4

March 2015GHC 7.10.1Mailing list: GHC 7.10.1 releasedRelease notes for GHC 7.10.1

New language extensions:

This GHC version corresponds to base version

In a wholehearted embrace of applicative functors and related classes, there were significant changes to the base library:

  • Applicative, Foldable, and Traversable are now included in the Prelude module.
  • Many list functions in Prelude were replaced with more generic Foldable variants. For example, the type of length changed from [a] -> Int to Foldable t => t a -> Int.
  • Applicative is nowMonad in GHC 7.10 a superclass of Monad.

Some other changes to base:

July 2015GHC 7.10.2Mailing list: GHC 7.10.2 releasedRelease notes for GHC 7.10.2

???GHC 7.10.3Release notes for GHC 7.10.3

May 2016GHC 8.0.1Mailing list: GHC 8.0.1 releasedGHC blog: GHC 8.0.1 releasedRelease notes for GHC 8.0.1

New language extensions:

January 2017GHC 8.0.2GHC blog: GHC 8.0.2 releasedRelease notes for GHC 8.0.2

July 2017GHC 8.2.1Mailing list: GHC 8.2.1 releasedGHC blog: GHC 8.2.1 releasedRelease notes for GHC 8.2.1

New language extensions:

  • DerivingStrategies
  • UnboxedSums

Options added to the GHCi :type command:

November 2017GHC 8.2.2Mailing list: GHC 8.2.2 releasedGHC blog: GHC 8.2.2 releasedRelease notes for GHC 8.2.2

March 2018GHC 8.4.1Mailing list: GHC 8.4.1 releasedGHC blog: GHC 8.4.1 releasedRelease notes for GHC 8.4.1

New language extensions:

  • EmptyDataDeriving
  • HexFloatLiterals

April 2018GHC 8.4.2Mailing list: GHC 8.4.2 releasedGHC blog: GHC 8.4.2 releasedRelease notes for GHC 8.4.2

May 2018GHC 8.4.3Mailing list: GHC 8.4.3 releasedGHC blog: GHC 8.4.3 releasedRelease notes for GHC 8.4.3

September 2018Deriving ViaDeriving Via: or, How to Turn Hand-Written Instances into an Anti-Pattern (PDF)

This paper describes the deriving via language extension, which soon appeared in GHC 8.6.1.

Authors: Baldur Blöndal, Andres Löh, and Ryan Scott

September 2018GHC 8.6.1Mailing list: GHC 8.6.1 releasedGHC blog: GHC 8.6.1 releasedRelease notes for GHC 8.6.1

New language extensions:

GeneralisedNewtypeDeriving is added as a synonym for GeneralizedNewtypeDeriving. (“Generalized” with a z is the American spelling; “generalised” with an s is the British spelling.)

October 2018GHC 8.4.4Mailing list: GHC 8.4.4 releasedGHC blog: GHC 8.4.4 releasedRelease notes for GHC 8.4.4

November 2018GHC 8.6.2Mailing list: GHC 8.6.2 releasedGHC blog: GHC 8.6.2 releasedRelease notes for GHC 8.6.2

December 2018GHC 8.6.3GHC blog: GHC 8.6.3 releasedRelease notes for GHC 8.6.3

March 2019GHC 8.6.4Mailing list: GHC 8.6.4 releasedGHC blog: GHC 8.6.4 releasedRelease notes for GHC 8.6.4

April 2019GHC 8.6.5GHC blog: GHC 8.6.5 releasedRelease notes for GHC 8.6.5

August 2019GHC 8.8.1GHC blog: GHC 8.8.1 releasedRelease notes for GHC 8.8.1

January 2020GHC 8.8.2GHC blog: GHC 8.8.2 released

February 2020GHC 8.8.3GHC blog: GHC 8.8.3 released

March 2020GHC 8.10.1GHC blog: GHC 8.10.1 releasedRelease notes for GHC 8.10.1

New language extensions:

  • UnliftedNewtypes
  • StandaloneKindSignatures

Added the GHCi :instances command, which gives a list of a type’s typeclass instances.

Join Type Classes for courses and projects to get you started and make you an expert in FP with Haskell.