Changelog for template-haskell-2.14.0.0
Changelog for template-haskell package
2.14.0.0 August 2018
-
Introduce an
addForeignFilePathfunction, as well as a correspondingqAddForeignFileclass method toQuasi. UnlikeaddForeignFile, which takes the contents of the file as an argument,addForeignFilePathtakes as an argument a path pointing to a foreign file. A newaddForeignSourcefunction has also been added which takes a file's contents as an argument.The old
addForeignFilefunction is now deprecated in favor ofaddForeignSource, and theqAddForeignFilemethod ofQuasihas been removed entirely. -
Introduce an
addTempFilefunction, as well as a correspondingqAddTempFilemethod toQuasi, which requests a temporary file of a given suffix. -
Add a
ViaStrategyconstructor toDerivStrategy.
2.13.0.0 March 2018
-
Bundled with GHC 8.4.1
-
Language.Haskell.TH.FamFlavour, which was deprecated in 2.11, has been removed. -
Add support for overloaded labels. Introduces
labelE :: String -> ExpQ. -
Add
KindQ,TyVarBndrQ, andFamilyResultSigQaliases toLanguage.Haskell.TH.Lib. -
Add
Language.Haskell.TH.Lib.Internalmodule, which exposes some additional functionality that is used internally in GHC's integration with Template Haskell. This is not a part of the public API, and as such, there are no API guarantees for this module from version to version. -
MonadIOis now a superclass ofQuasi,qRunIOhas a default implementationqRunIO = liftIO -
Add
MonadIO Qinstance
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 toDec(PatSynDandPatSynSigD), and two new data types (PatSynDirandPatSynArgs), among other changes. (#8761) -
Add support for unboxed sums. (#12478)
-
Add support for visible type applications. (#12530)
-
Add support for attaching deriving strategies to
derivingstatements (#10598) -
Add support for
COMPLETEpragmas. (#13098) -
unboxedTupleTypeNameandunboxedTupleDataNamenow work for unboxed 0-tuples and 1-tuples (#12977) -
Language.Haskell.THnow reexports all ofLanguage.Haskell.TH.Lib. (#12992). This causesLanguage.Haskell.THto export more types and functions that it did before:TExp,BangQ, andFieldExpQunboxedTupP,unboxedTupEandunboundVarEinfixLD,infixRD, andinfixNDunboxedTupleTandwildCardTplainTVandkindedTVinterruptibleandfunDepvalueAnnotation,typeAnnotation, andmoduleAnnotation
-
Add support for overloaded labels.
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
UInfixTconstructor ofTypeis analoguous toUInfixEfor expressions and can contain a tree of infix type applications which will be reassociated according to the fixities of the operators. TheParensTconstructor can be used to explicitly group expressions. -
Add
namePackageandnameSpace -
Make
dataToQaanddataToExpQable to handleDatainstances whosetoConstrimplementation relies on a function instead of a data constructor (#10796) -
Add
Showinstances forNameFlavourandNameSpace -
Remove
FamilyDandFamFlavour. AddDataFamilyDandOpenTypeFamilyDas the representation of data families and open type families respectively. (#6018) -
Add
TypeFamilyHeadfor common elements ofOpenTypeFamilyDandClosedTypeFamilyD(#10902) -
The
Strictdatatype was split among different datatypes: three for writing the strictness information of data constructors' fields as denoted in Haskell source code (SourceUnpackednessandSourceStrictness, as well asBang), and one for strictness information after a constructor is compiled (DecidedStrictness).Strict,StrictTypeandVarStrictTypehave been deprecated in favor ofBang,BangTypeandVarBangType. (#10697) -
Add
reifyConStrictnessto query a data constructor'sDecidedStrictnessvalues for its fields (#10697) -
The
ClassOpI,DataConI, andVarIconstructors no longer have aFixityfield. Instead, allFixityinformation for a givenNameis now determined through thereifyFixityfunction, which returnsJustthe fixity if there is an explicit fixity declaration for thatName, andNothingotherwise (#10704 and #11345) -
Add
MonadFail Qinstance 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
containerspackage - Make
Preda type synonym ofType, and deprecateclassP/equalP(#7021) - Add support for
LINEpragma viaprageLineDandLineP - Replace
Int#with!IntinNameFlavourconstructors - Derive
Genericfor TH types (#9527) - Add
standaloneDerivD(#8100) - Add support for generic default signatures via
defaultSigD(#9064) - Add
Liftinstances for()andRational - Derive new
ShowandDatainstances forLoc - Derive
Eqinstances forLoc,Info, andModuleInfo - Make calling conventions available in template haskell consistent with those from GHC (#9703)
- Add support for
-XStaticValuesviastaticE - Add
Ordinstances to TH types - Merge some instances from
th-orphans(Pprinstances forLitandLocas well asLiftinstances for numeric types - Put parens around
(ty :: kind)when pretty-printing TH syntax