# Version 0.13.0.0 (2024-30-10)
- Update to changes in the type of GHC's `mkUnivCo`
in order to (properly) add support for GHC 9.12.
- Change `mkPluginUnivCo`, `mkPluginUnivEvTerm` and `mkTyFamAppReduction`
to take a `[Coercion]` rather than a `DVarSet` for specifying dependencies.
- Stop re-exporting `DVarSet`, `emptyDVarSet`, `extendDVarSet`, `unionDVarSet`,
`unitDVarSet`, and `mkDVarSet`.
- Update documentation to suggest using `ctEvCoercion`
rather than `ctEvId` to specify coercions that a `UnivCo` depends on.
- Re-export `ctEvCoercion`, and stop re-exporting `ctEvId`.
# Version 0.12.0.0 (2024-22-10)
- Add preliminary support for GHC 9.12.
- `mkPluginUnivCo`, `mkPluginUnivEvTerm` and `mkTyFamAppReduction` now all take
an additional `DVarSet` argument which allows specifying evidence that we
depend on. This stops evidence terms being floated out past used enclosing
Givens (see [GHC issue #23923](https://gitlab.haskell.org/ghc/ghc/-/issues/23923)).
- Re-export `DVarSet`, `emptyDVarSet`, `extendDVarSet`, `unionDVarSet`,
`unitDVarSet`, and `mkDVarSet`, as well as `ctEvId`, in order to facilitate
construction and manipulation of `DVarSet`s.
- Re-export `GHC.Types.Unique.Set`, `GHC.Types.Unique.DSet`.
# Version 0.11.0.0 (2023-08-29)
- Add support for GHC 9.8.
- Re-export functionality relating to GHC's constraint solving `TcS` monad,
such as `{get,set}InertSet`, `{get,set}TcEvBindsMap`.
- Re-export `readTcRef` and `writeTcRef`.
# Version 0.10.0.0 (2023-02-28)
- Introduce `resolveImport`, and make `PkgQual` opaque.
- Rename `tcRewriterWanteds` to `tcRewriterNewWanteds`
(bringing it in line with nomenclature in GHC 9.4).
# Version 0.9.0.0 (2023-01-24)
- Add support for GHC 9.6 and `transformers` 0.6.
- The `One` and `Many` pattern synonyms are now `OneTy` and `ManyTy`.
- Use `mkInvisFunTy`/`mkInvisFunTys` instead of `mkInvisFunTyMany`/`mkInvisFunTysMany`.
# Version 0.8.3.0 (2022-10-05)
- Bugfix for the GHC 9.0 rewriter plugin compatibility shim:
fix coercion orientations in family application cache
# Version 0.8.2.0 (2022-10-05)
- Bugfix for the GHC 9.0 rewriter plugin compatibility shim:
fix coercion orientations in family rewriting.
# Version 0.8.1.0 (2022-10-05)
- Bugfix for the GHC 9.2 rewriter plugin compatibility shim:
fix coercion orientations in family rewriting.
# Version 0.8.0.0 (2022-07-07)
- Compatibility for GHC 9.4.
- Change API for `lookupImportedModule` to use `PkgQual` and `UnitId`
instead of `Maybe FastString`, with back-compatibility function `pkgQual_pkg`
for use with older module lookup functions.
- Re-export `splitAppTys` and `unpackFS`.
# Version 0.7.1.0 (2022-01-04)
- `newWanted` now always uses the `CtLoc` information that it is provided with,
as opposed to obtaining some information from the monadic environment.
This means you no longer need to wrap calls to `newWanted` in `setCtLocM`
to ensure that GHC reports the correct source span when reporting unsolved
Wanteds in error messages.
- Remove the `newDerived` function, as Derived constraints are going to be
removed from GHC.
# Version 0.7.0.0 (2021-12-31)
- Re-export functions for dealing with type-level literals,
such as `mkNumLitTy` and `isStrLitTy`.
- Re-export functions for splitting apart type applications, such as
`splitAppTy_maybe` and `tyConAppTyCon_maybe`.
- Redefine and re-export `mkUncheckedIntExpr` for GHC versions prior to 9.0.
- Re-export some basic types from `GHC.Types.Basic` such as `Arity`,
`PromotionFlag` and `Boxity`.
- Re-export `GHC.Builtin.Names` and `GHC.Builin.Types.Prim`.
- Provide `MonadThings` instances for `TcPluginM` monads.
# Version 0.6.1.0 (2021-12-13)
- Re-export various useful types and functions to deal with type and coercion variables.
- Re-export a few types and functions to deal with source locations.
- Remove some re-exports for constructing function types, as not all functions make sense
across all GHC versions supported by the library.
- Re-export `panic` and `pprPanic`.
# Version 0.6.0.0 (2021-12-13)
- Add support for GHC 8.8.
- Re-export `evDataConApp`, which is useful for constructing typeclass dictionaries.
# Version 0.5.1.0 (2021-08-31)
- Fix a bug in the type-family rewriting compatibility layer (GHC 8.10, 9.0, 9.2)
by correctly downgrading the coercion used to cast the evidence, when necessary.
# Version 0.5.0.0 (2021-08-30)
- Re-export some additional types and functions that are useful for inspecting
and constructing evidence terms, such as `mkTyVar`, `newName`, `mkLocalId`, `lookupEvBind`...
# Version 0.4.1.0 (2021-08-24)
- Re-export a few GHC modules, such as GHC.Core.Make and GHC.Plugins.
These re-exports might be changed to be more selective in the future
to aid cross-version compatibility.
# Version 0.4.0.0 (2021-08-24)
- Adapt to GHC 9.4 changes in the `TcPluginSolveResult` datatype:
are now able to solve and emit constraints even when reporting
a contradiction. This can help with error messages.
Unfortunately these extra constraints will be dropped in versions
of GHC prior to 9.4.
- Add a utility module for name resolution using constrained traversals.
- Add compatibility for GHC 8.10.
# Version 0.3.1.0 (2021-08-09)
Ensure that the coercions stored in `Reduction`s are always
oriented left-to-right, by making the internal rewriting compatibility layer
also use left-to-right coercions.
# Version 0.3.0.0 (2021-08-04)
Account for changes in rewriting in GHC 9.4:
- rewriter plugins can no longer emit new Wanted constraints
if they don't rewrite the type family application;
- coercions in the rewriter are now oriented left-to-right,
requiring `mkTyFamAppReduction` to be adapted.
# Version 0.2.0.0 (2021-07-22)
Initial release on Hackage.