Changelog for template-haskell-2.12.0.0

2.12.0.0 July 2017

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

2.11.0.0 May 2016

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

2.10.0.0 Mar 2015

Bundled with GHC 7.10.1

Remove build-dependency on containers package

Make Pred a type synonym of Type, and deprecate classP/equalP (#7021)

Add support for LINE pragma via prageLineD and LineP

Replace Int# with !Int in NameFlavour constructors

Derive Generic for TH types (#9527)

Add standaloneDerivD (#8100)

Add support for generic default signatures via defaultSigD (#9064)

Add Lift instances for () and Rational

Derive new Show and Data instances for Loc

Derive Eq instances for Loc, Info, and ModuleInfo

Make calling conventions available in template haskell consistent
with those from GHC (#9703)

Add support for -XStaticValues via staticE

Add Ord instances to TH types

Merge some instances from th-orphans (Ppr instances for Lit
and Loc as well as Lift instances for numeric types