Changelog of @hackage/constraints 0.9

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 TypeReps 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.

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, 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