-
Bundled with GHC 8.2.1
-
Add support for pattern synonyms. This introduces one new constructor to
Info
(PatSynI
), two new constructors to Dec
(PatSynD
and
PatSynSigD
), and two new data types (PatSynDir
and PatSynArgs
),
among other changes. (#8761)
-
Add support for unboxed sums. (#12478)
-
Add support for visible type applications. (#12530)
-
Add support for attaching deriving strategies to deriving
statements
(#10598)
-
Add support for COMPLETE
pragmas. (#13098)
-
unboxedTupleTypeName
and unboxedTupleDataName
now work for unboxed
0-tuples and 1-tuples (#12977)
-
Language.Haskell.TH
now reexports all of Language.Haskell.TH.Lib
.
(#12992). This causes Language.Haskell.TH
to export more types and
functions that it did before:
TExp
, BangQ
, and FieldExpQ
unboxedTupP
, unboxedTupE
and unboundVarE
infixLD
, infixRD
, and infixND
unboxedTupleT
and wildCardT
plainTV
and kindedTV
interruptible
and funDep
valueAnnotation
, typeAnnotation
, and moduleAnnotation
-
Add support for overloaded labels.
-
Bundled with GHC 8.0.1
-
The compiler can now resolve infix operator fixities in types on its own.
The UInfixT
constructor of Type
is analoguous to UInfixE
for expressions
and can contain a tree of infix type applications which will be reassociated
according to the fixities of the operators. The ParensT
constructor can be
used to explicitly group expressions.
-
Add namePackage
and nameSpace
-
Make dataToQa
and dataToExpQ
able to handle Data
instances whose
toConstr
implementation relies on a function instead of a data
constructor (#10796)
-
Add Show
instances for NameFlavour
and NameSpace
-
Remove FamilyD
and FamFlavour
. Add DataFamilyD
and OpenTypeFamilyD
as the representation of data families and open type families
respectively. (#6018)
-
Add TypeFamilyHead
for common elements of OpenTypeFamilyD
and
ClosedTypeFamilyD
(#10902)
-
The Strict
datatype was split among different datatypes: three for
writing the strictness information of data constructors’ fields as denoted
in Haskell source code (SourceUnpackedness
and SourceStrictness
, as
well as Bang
), and one for strictness information after a constructor is
compiled (DecidedStrictness
). Strict
, StrictType
and VarStrictType
have been deprecated in favor of Bang
, BangType
and VarBangType
.
(#10697)
-
Add reifyConStrictness
to query a data constructor’s DecidedStrictness
values for its fields (#10697)
-
The ClassOpI
, DataConI
, and VarI
constructors no longer have a
Fixity
field. Instead, all Fixity
information for a given Name
is
now determined through the reifyFixity
function, which returns Just
the
fixity if there is an explicit fixity declaration for that Name
, and
Nothing
otherwise (#10704 and #11345)
-
Add MonadFail Q
instance for GHC 8.0 and later (#11661)
-
Add support for OVERLAP(S/PED/PING) pragmas on instances