All Versions
21
Latest Version
Avg Release Cycle
63 days
Latest Release
1087 days ago
Changelog History
Page 1
Changelog History
Page 1
-
v0.4.0.0 Changes
September 29, 2020- Adapt to the
TyVarBndr
data type gaining a newflag
type parameter (intemplate-haskell-2.17.0.0
) to represent its specificity:- Introduce a new
Language.Haskell.TH.Datatype.TyVarBndr
module that definesTyVarBndr_
, a backwards-compatible type synonym forTyVarBndr
, as well as backportingTyVarBndrSpec
,TyVarBndrUnit
, andSpecificity
. This module also defines other useful functions for constructing and manipulatingTyVarBndr
s. - The types in
Language.Haskell.TH.Datatype
now useTyVarBndr_
,TyVarBndrUnit
, andTyVarBndrSpec
where appropriate. Technically, this is not a breaking change, since all three are simple type synonyms aroundTyVarBndr
, but it is likely that you will need to update yourth-abstraction
-using code anyway if it involves aTyVarBndr
-consuming function.
- Introduce a new
- Adapt to the
-
v0.3.2.0 Changes
February 06, 2020- ๐ Support substituting into and extracting free variables from
ForallVisT
s ontemplate-haskell-2.16.0.0
(GHC 8.10) or later. - ๐ Fix a bug in which
freeVariables
could report duplicate kind variables when they occur in the kinds of the type variable binders in aForallT
. - ๐ Fix a bug in which
resolveInfixT
would not resolveUInfixT
s occurring in the kinds of type variable binders in aForallT
. - ๐ Fix a bug in which the
TypeSubstitution ConstructorInfo
instance would not detect free kind variables in theconstructorVars
.
- ๐ Support substituting into and extracting free variables from
-
v0.3.1.0 Changes
April 29, 2019- ๐ Fix a bug which would cause data family information to be reified incorrectly with GHC 8.8+ in some situations.
-
v0.3.0.0 Changes
April 26, 2019- ๐ฅ Breaking change: the
datatypeVars
field ofDatatypeInfo
is now of type[TyVarBndr]
instead of[Type]
, as it now refers to all of the bound type variables in the data type. The olddatatypeVars
field has been renamed todatatypeInstTypes
to better reflect its purpose.
In addition, the type of
normalizeCon
now has an additional[TyVarBndr]
argument, sinceDatatypeInfo
now requires it.- ๐ Support
template-haskell-2.15
. - ๐ Fix a bug in which
normalizeDec
would not detect existential type variables in a GADT constructor if they were implicitly quantified. - ๐ Fix a bug in which
normalizeDec
would report an incorrect number ofdatatypeVars
for GADT declarations with explicit return kinds (such asdata Foo :: * -> * where
).
- ๐ฅ Breaking change: the
-
v0.2.11.0 Changes
February 26, 2019- ๐ Fix a bug in which
freeVariablesWellScoped
would sometimes not preserve the left-to-right ordering ofName
s generated withnewName
.
- ๐ Fix a bug in which
-
v0.2.10.0 Changes
December 21, 2018- Optimization:
quantifyType
now collapses consecutiveforall
s. For instance, callingquantifyType
onforall b. a -> b -> T a
now producesforall a b. a -> b -> T a
instead offorall a. forall b. a -> b -> T a
.
- Optimization:
-
v0.2.9.0 Changes
December 20, 2018- ๐ Fix a bug in which
resolveTypeSynonyms
would not look intoForallT
s,SigT
s,InfixT
s, orParensT
s. - ๐ Fix a bug in which
quantifyType
would not respect the dependency order of type variables (e.g.,Proxy (a :: k)
would have erroneously been quantified asforall a k. Proxy (a :: k)
). - ๐ Fix a bug in which
asEqualPred
would return incorrect results with GHC 8.7. - โ Add a
freeVariablesWellScoped
function which computes the free variables of a list of types and sorts them according to dependency order. - โ Add a
resolveKindSynonyms
function which expands all type synonyms in aKind
. This is mostly useful for supporting old GHCs whereType
andKind
were not the same.
- ๐ Fix a bug in which
-
v0.2.8.0 Changes
June 29, 2018GADT reification is now much more robust with respect to
PolyKinds
:- A bug in which universally quantified kind variables were mistakenly flagged as existential has been fixed.
- A bug in which the kinds of existentially quantified type variables were not substituted properly has been fixed.
- More kind equalities are detected than before. For example, in the following data type:
data T (a :: k) where MkT :: forall (a :: Bool). T a
We now catch the
k ~ Bool
equality.๐ Tweak
resolveTypeSynonyms
so that failing to reify a type constructor name so longer results in an error. Among other benefits, this makes it possible to pass data types with GADT syntax tonormalizeDec
.
-
v0.2.7.0 Changes
June 18, 2018- ๐ Fix bug in which data family instances with duplicate occurrences of type variables in the left-hand side would have redundant equality constraints in their contexts.
-
v0.2.6.0 Changes
September 05, 2017- ๐ Fix bug in which
applySubstitution
andfreeVariables
would ignore type variables in the kinds of type variable binders.
- ๐ Fix bug in which