packages feed

constraints-0.10: CHANGELOG.markdown

0.10
----
* Adapt to the `Semigroup`–`Monoid` Proposal (introduced in `base-4.11`):
  * Add a `Semigroup` instance for `Dict`
  * Add the appropriate `(:=>)` instances involving `Semigroup`, and change the
    `Class () (Monoid a)` instance to `Class (Semigroup a) (Monoid a)` when
    `base` is recent enough
  * Add the appropriate `Lifting(2)` instances involving `Semigroup`
* `Data.Constraint.Nat` now reexports the `Div` and `Mod` type families from
  `GHC.TypeLits` on `base-4.11` or later
* Fix the type signature of `maxCommutes`
* Export the `no` method of `Bottom`
* Add `NFData` instances for `Dict` and `(:-)`

0.9.1
-----
* Correct an improper use of `unsafeCoerce` in the internals of
  `Data.Constraint.Nat` and `Data.Constraint.Symbol`
* Correctly identify the mismatched types when you defer an unsatisfiable
  equality constraint through `Data.Constraint.Deferrable`
* Re-export the `(:~~:)` defined in `base` from `Data.Constraint.Deferred` with
  GHC 8.2 or later
* Add several new `(:=>)` instances for `Bits`, `Identity`, `Const`, `Natural`,
  `IO`, and `Word`.
* Modernize some existing `Class` and `(:=>)` instances to reflect the fact
  that `Applicative` is now a superclass of `Monad` on recent versions of
  `base`.

0.9
---
* Changes to `Data.Constraint`:
  * Add `strengthen1` and `strengthen2`
* Changes to `Data.Constraint.Deferrable`:
  * Add a `Deferrable ()` instance
  * The `Deferrable (a ~ b)` instance now shows the `TypeRep`s of `a` and `b`
    when a type mismatch error is thrown
  * Add `defer_` and `deferEither_`, counterparts to `defer` and `deferEither`
    which do not require proxy arguments
  * Enable `PolyKinds`. This allows the `Deferrable (a ~ b` instance to be
    polykinded on all supported versions of GHC _except_ 7.10, where the kinds
    must be `*` due to an old GHC bug
  * Introduce a heterogeneous equality type `(:~~:)`, and use it to define a
    `Deferrable (a ~~ b)` instance on GHC 8.0 or later
* Changes to `Data.Constraint.Forall`:
  * Implement `ForallF` and `ForallT` in terms of `Forall`
  * Add `ForallV` and `InstV` (supporting a variable number of parameters)
  * Add a `forall` combinator
* Introduce `Data.Constraint.Nat` and `Data.Constraint.Symbol`, which contain
  utilities for working with `KnownNat` and `KnownSymbol` constraints,
  respectively. These modules are only available on GHC 8.0 or later.

0.8
-----
* GHC 8 compatibility
* `transformers` 0.5 compatibility
* `binary` 0.8 compatibility
* Dropped support for GHC 7.6 in favor of a nicer Bottom representation.

0.7
---
* Found a nicer encoding of the initial object in the category of constraints using a [nullary constraint](https://ghc.haskell.org/trac/ghc/ticket/7642).

0.6.1
-----
* Remove the need for closed type families from the new `Forall`.

0.6
---
* Completely redesigned `Data.Constraint.Forall`. The old design is unsound and can be abused to define `unsafeCoerce`!
  The new design requires closed type families, so this module now requires GHC 7.8+

0.5.1
-----
* Added `Data.Constraint.Deferrable`.

0.5
-----
* Added `Data.Constraint.Lifting`.

0.4.1.3
-------
* Acknowledge we actually need at least base 4.5

0.4.1.2
-------
* Restore support for building on older GHCs

0.4.1.1
-------
* Minor documentation fixes.

0.4.1
-----
* Added `mapDict` and `unmapDict`.
* Added a lot of documentation.

0.4
---
* `Typeable` and `Data`. The `Data` instance for `(:-)` is a conservative approximation that avoids having to turn (:-) into a cartesian closed category.
  If it becomes a pain point for users, I know how to do that, and have done so in other libraries -- see [hask](http://github.com/ekmett/hask), but I'm hesitant to bring such heavy machinery to bear and it isn't clear how to do it in a way that is compatible with those other libraries.

0.3.5
-----
* Explicit role annotations

0.3.4.1
-------
* Fixed build failures.
* Fixed an unused import warning on older GHCs.

0.3.4
-----
* Added `bottom`