2018-12-21 - firstname.lastname@example.org
- Update th-abstraction to version 0.2.10.0.
[#]# 0.2.10.0 -- 2018-12-20
* Optimization: `quantifyType` now collapses consecutive `forall`s. For
instance, calling `quantifyType` on `forall b. a -> b -> T a` now produces
`forall a b. a -> b -> T a` instead of `forall a. forall b. a -> b -> T a`.
[#]# 0.2.9.0 -- 2018-12-20
* Fix a bug in which `resolveTypeSynonyms` would not look into `ForallT`s,
`SigT`s, `InfixT`s, or `ParensT`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
as `forall 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 a
`Kind`. This is mostly useful for supporting old GHCs where `Type` and `Kind`
were not the same.
2018-10-20 - Peter Simons <email@example.com>
- Use https URL to refer to bugs.opensuse.org.
2018-07-18 - firstname.lastname@example.org
- Cosmetic: replace tabs with blanks, strip trailing white space,
and update copyright headers with spec-cleaner.
2018-07-13 - email@example.com
- Update th-abstraction to version 0.2.8.0.
[#]# 0.2.8.0 -- 2018-06-29
* GADT 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 to `normalizeDec`.
[#]# 0.2.7.0 -- 2018-06-17
* 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.
2018-05-14 - firstname.lastname@example.org
- Update th-abstraction to version 0.2.6.0 revision 1.
* Fix bug in which `applySubstitution` and `freeVariables` would ignore
type variables in the kinds of type variable binders.
* Added `pragLineDCompat`, `newtypeDCompat` and `tySynInstDCompat`
* Fix bug that caused GADT equality constraints to be incorrect in some cases.
* Expose `Unpackedness` and `Strictness` (which were unexported by accident).
* Add `resolvePredSynonyms`
* Add `reifyConstructor`, which allows reification of `ConstructorInfo` from
a constructor name, and `lookupByConstructorName`, which allows directly
looking up a `ConstructorInfo` from a `DatatypeInfo` value for a given
* Augment `reifyDatatype` to be able to look up `DatatypeInfo` from the `Name`
of a record selector for one of its constructors. Also add `reifyRecord` for
reification of of `ConstructorInfo` from a record name, and
`lookupByRecordName`, which allows directly looking up a `ConstructorInfo`
from a `DatatypeInfo` value for a given record `Name`.
* Fix bug that caused `th-abstraction` to fail on GHC 7.0 and 7.2 when passing
a vanilla constructor name to `reifyDatatype`
* Make `normalizeDec` and `normalizeCon` more robust with respect to
data family instances on GHC 7.6 and 7.8
2017-06-30 - email@example.com
- Update to version 0.2.3.0.
2017-06-19 - firstname.lastname@example.org
- Update to version 0.2.2.0.