April 1990Haskell 1.0

The first specification Haskell 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.1 Haskell 1.1

March 1992Haskell 1.2 Haskell 1.2

June 1995 (?)GHC 0.29 Documentation for GHC 0.29

May 1996Haskell 1.3 Haskell 1.3

April 1997Haskell 1.4 Haskell 1.4

March 1997GHC 2.02 Release notes for GHC 2.02

The first release of GHC for Haskell 1.4.

April 1997GHC 3.02 Release notes for GHC 3.02

April 1997GHC 2.03 Release notes for GHC 2.03

June 1997GHC 2.04 Release notes for GHC 2.04

September 1997GHC 2.06 Release notes for GHC 2.06

October 1997GHC 2.08 Release notes for GHC 2.08

November 1997GHC 2.09 Release notes for GHC 2.09

December 1997GHC 2.10 Release notes for GHC 2.10

December 1998GHC 4.02 Release 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 Report Haskell 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.04 Release notes for GHC 4.04

New features:

The -funbox-strict-fields flag

flag The RULES pragma, used for list fusion

pragma, used for list fusion Asynchronous exceptions

January 2000GHC 4.06 Release notes for GHC 4.06

July 2000GHC 4.08 Release 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.2 Mailing list: GHC 4.08.2 released

A bugfix release only, with no new features.

April 2001GHC 5.00 Mailing list: GHC 5.00 released Release notes for GHC 5.00

Introduced GHCi.

New language features:

Parallel list comprehensions

Functional dependencies

This version introduces the -fno-monomorphism-restriction flag GHC 5.00 flag reference Git 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.1 Mailing list: GHC 5.00.1 released

A bugfix release only, with no new features.

June 2001GHC 5.00.2 Mailing list: GHC 5.00.2 released

A bugfix release only, with no new features.

September 2001GHC 5.02 Mailing list: GHC 5.02 released Release 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.1 Mailing list: GHC 5.02.1 released

A bugfix release only, with no new features.

January 2002Lexically-scoped type variables Lexically 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.2 Mailing list: GHC 5.02.2 released

April 2002GHC 5.02.3 Mailing list: GHC 5.02.3 released

July 2002GHC 5.04 Mailing list: GHC 5.04 released Release notes for GHC 5.04

Rank-2 types are generalized Arbitrary-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.1 Mailing list: GHC 5.04.1 released

December 2002Haskell 98, revised Haskell 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.2 Mailing list: GHC 5.04.2 released

March 2003GHC 5.04.3 Mailing list: GHC 5.04.3 released

May 2003GHC 6.0 Mailing list: GHC 6.0 released Release 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.THSyntax Language.Haskell.THSyntax in GHC 6.0 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.1 Mailing list: GHC 6.0.1 released

December 2003GHC 6.2 Mailing list: GHC 6.2 released Release 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' 4

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.1 Mailing list: GHC 6.2.1 released Release notes for GHC 6.2.1

Added the -threaded and -debug link options.

October 2004GHC 6.2.2 Mailing list: GHC 6.2.2 released

A bugfix release only, with no new features.

January 2005Associated types with class Associated 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.4 Mailing list: GHC 6.4 released Release notes for GHC 6.4

New features:

Generalized algebraic datatypes (GADTs)

Software transactional memory (STM)

This version expands upon the scoped type variables Scoped 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 .

package into a new package called . The Language.Haskell.THSyntax module Language.Haskell.TH.Syntax in GHC 6.4 Language.Haskell.TH.Syntax .

September 2005GHC 6.4.1 Mailing list: GHC 6.4.1 released Release notes for GHC 6.4.1

November 2005Applicative programming with effects Applicative 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.2 Mailing list: GHC 6.4.2 released Release notes for GHC 6.4.2

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

July 2006The essence of the iterator pattern The essence of the iterator pattern (PDF), published in Journal of Functional Programming in July 2009 MPC/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.6 Mailing list: GHC 6.6 released Release notes for GHC 6.6

New features:

BangPatterns

The :main command in GHCi

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 changes Scoped 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.

executable with the flag or add to Haskell source file. Now you also have the option of enabling the extension by adding to a Haskell source file. Complete list of extensions Extensions supported by the LANGUAGE pragma in GHC 6.6 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

pragma as of this GHC version: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 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.6 Data.Foldable in GHC 6.6 Data.Traversable in GHC 6.6 Data.ByteString in GHC 6.6 Data.Fixed in GHC 6.6 Data.Sequence in GHC 6.6 which introduced some significant new features:

Applicative functors as given in Applicative programming with effects, with the addition of three new modules: Control.Applicative , Data.Foldable , and Data.Traversable . These modules will later be incorporated into Prelude in GHC 7.10.1.

, , and . These modules will later be incorporated into in GHC 7.10.1. Data.ByteString , which would soon be moved from base into a separate bytestring package in GHC 6.8.1

, which would soon be moved from into a separate package in GHC 6.8.1 Data.Fixed

Data.Sequence

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

June 2007A History of Haskell: being lazy with class A 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 quoted Why 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.1 Mailing list: GHC 6.8.1 released Release notes for GHC 6.8.1 GHC 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 datatypes Git commit introducing the GADTs extension have actually been available in GHC since version 6.4.

New language extension flags:

Record field disambiguation Record 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 policy Version numbering policy in GHC 6.8.1 that is still in use today.

December 2007GHC 6.8.2 Mailing list: GHC 6.8.2 released

June 2008GHC 6.8.3 Mailing list: GHC 6.8.3 released

November 2008GHC 6.10.1 Mailing list: GHC 6.10.1 released GHC blog: GHC 6.10.1 released Release notes for GHC 6.10.1

Introduced the QuasiQuotes language extension.

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 now Impredicative 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.2 Mailing list: GHC 6.10.2 released Release notes for GHC 6.10.2

This GHC version corresponds to base version 4.1.0.0. base-4.1.0.0

May 2009GHC 6.10.3 Mailing list: GHC 6.10.3 released Release notes for GHC 6.10.3

July 2009GHC 6.10.4 Mailing list: GHC 6.10.4 released Release notes for GHC 6.10.4

December 2009GHC 6.12.1 Mailing list: GHC 6.12.1 released Release 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 4.2.0.0. base-4.2.0.0

April 2010GHC 6.12.2 Mailing list: GHC 6.12.2 released Release notes for GHC 6.12.2

July 2010Haskell 2010 Haskell 2010

June 2010GHC 6.12.3 Mailing list: GHC 6.12.3 released Release notes for GHC 6.12.3

November 2010GHC 7.0.1 Mailing list: GHC 7.0.1 released Release 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.2 Mailing list: GHC 7.0.2 released Release notes for GHC 7.0.2

March 2011GHC 7.0.3 Mailing list: GHC 7.0.3 released Release notes for GHC 7.0.3

June 2011GHC 7.0.4 Mailing list: GHC 7.0.4 released Release notes for GHC 7.0.4

August 2011GHC 7.2.1 Mailing list: GHC 7.2.1 released Release 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

, added 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.2 Mailing list: GHC 7.2.2 released Release notes for GHC 7.2.2

February 2012GHC 7.4.1 Mailing list: GHC 7.4.1 released Release 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.2 Mailing list: GHC 7.4.2 released Release notes for GHC 7.4.2

September 2012GHC 7.6.1 Mailing list: GHC 7.6.1 released Release notes for GHC 7.6.1

New language extensions:

ExplicitNamespaces

InstanceSigs

LambdaCase

MultiWayIf

New GHCi features:

The -interactive-print flag can be used to customize how results are printed.

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 4.6.0.0. base-4.6.0.0

January 2013GHC 7.6.2 Mailing list: GHC 7.6.2 released Release notes for GHC 7.6.2

April 2013GHC 7.6.3 Mailing list: GHC 7.6.3 released Release notes for GHC 7.6.3

April 2014GHC 7.8.1 Mailing list: GHC 7.8.1 released Release 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:

It is now based on the new Coercible class.

class. The notion of roles is introduced. Roles in GHC 7.8

These changes will be described in Safe, zero-cost coercions for Haskell.

This GHC version corresponds to base version 4.7.0.0. base-4.7.0.0

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

April 2014GHC 7.8.2 Mailing list: GHC 7.8.2 released Release notes for GHC 7.8.2

July 2014GHC 7.8.3 Mailing list: GHC 7.8.3 released Release notes for GHC 7.8.3

June 2014Safe, zero-cost coercions for Haskell Safe, 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.4 Mailing list: GHC 7.8.4 released Release notes for GHC 7.8.4

March 2015GHC 7.10.1 Mailing list: GHC 7.10.1 released Release notes for GHC 7.10.1

New language extensions:

BinaryLiterals

DeriveAnyClass

NamedWildCards

PartialTypeSignatures

StaticPointers

This GHC version corresponds to base version 4.8.0.0. base-4.8.0.0

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.

, , and are now included in the 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 .

were replaced with more generic variants. For example, the type of changed from to . Applicative is now Monad in GHC 7.10 Monad .

Some other changes to base :

July 2015GHC 7.10.2 Mailing list: GHC 7.10.2 released Release notes for GHC 7.10.2

???GHC 7.10.3 Release notes for GHC 7.10.3

May 2016GHC 8.0.1 Mailing list: GHC 8.0.1 released GHC blog: GHC 8.0.1 released Release notes for GHC 8.0.1

New language extensions:

ApplicativeDo

DeriveLift

DuplicateRecordFields

TypeFamilyDependencies

MonadFailDesugaring

OverloadedLabels

Strict

StrictData

TemplateHaskellQuotes

TypeApplications – This motivated the addition of the :type +v GHCi command in GHC 8.2.

– This motivated the addition of the GHCi command in GHC 8.2. TypeInType

UndecidableSuperClasses

January 2017GHC 8.0.2 GHC blog: GHC 8.0.2 released Release notes for GHC 8.0.2

July 2017GHC 8.2.1 Mailing list: GHC 8.2.1 released GHC blog: GHC 8.2.1 released Release notes for GHC 8.2.1

New language extensions:

DerivingStrategies

UnboxedSums

Options added to the GHCi :type command:

+d to apply type defaulting to the expression

to apply type defaulting to the expression +v to provide information relevant to explicit type application, a feature that was added in GHC 8.0

November 2017GHC 8.2.2 Mailing list: GHC 8.2.2 released GHC blog: GHC 8.2.2 released Release notes for GHC 8.2.2

March 2018GHC 8.4.1 Mailing list: GHC 8.4.1 released GHC blog: GHC 8.4.1 released Release notes for GHC 8.4.1

New language extensions:

EmptyDataDeriving

HexFloatLiterals

April 2018GHC 8.4.2 Mailing list: GHC 8.4.2 released GHC blog: GHC 8.4.2 released Release notes for GHC 8.4.2

May 2018GHC 8.4.3 Mailing list: GHC 8.4.3 released GHC blog: GHC 8.4.3 released Release notes for GHC 8.4.3

September 2018Deriving Via Deriving 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.1 Mailing list: GHC 8.6.1 released GHC blog: GHC 8.6.1 released Release notes for GHC 8.6.1

New language extensions:

BlockArguments

DerivingVia

NumericUnderscores

QuantifiedConstraints

StarIsType (enabled by default)

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.4 Mailing list: GHC 8.4.4 released GHC blog: GHC 8.4.4 released Release notes for GHC 8.4.4

November 2018GHC 8.6.2 Mailing list: GHC 8.6.2 released GHC blog: GHC 8.6.2 released Release notes for GHC 8.6.2

December 2018GHC 8.6.3 GHC blog: GHC 8.6.3 released Release notes for GHC 8.6.3

March 2019GHC 8.6.4 Mailing list: GHC 8.6.4 released GHC blog: GHC 8.6.4 released Release notes for GHC 8.6.4

April 2019GHC 8.6.5 GHC blog: GHC 8.6.5 released Release notes for GHC 8.6.5

August 2019GHC 8.8.1 GHC blog: GHC 8.8.1 released Release notes for GHC 8.8.1

January 2020GHC 8.8.2 GHC blog: GHC 8.8.2 released

February 2020GHC 8.8.3 GHC blog: GHC 8.8.3 released

March 2020GHC 8.10.1 GHC blog: GHC 8.10.1 released Release notes for GHC 8.10.1

New language extensions:

UnliftedNewtypes

StandaloneKindSignatures