- Adapt to the
MonoidProposal (introduced in
base-4.11): Add a
DictAdd the appropriate
Semigroup, and change the
Class () (Monoid a)instance to
Class (Semigroup a) (Monoid a)when
baseis recent enough * Add the appropriate
Data.Constraint.Natnow reexports the
Modtype families from
- Fix the type signature of
- Export the
- Correct an improper use of
unsafeCoercein the internals of
- Correctly identify the mismatched types when you defer an unsatisfiable
equality constraint through
- Re-export the
Data.Constraint.Deferredwith GHC 8.2 or later
- Add several new
- Modernize some existing
(:=>)instances to reflect the fact that
Applicativeis now a superclass of
Monadon recent versions of
- Changes to
Data.Constraint: * Add
- Changes to
Data.Constraint.Deferrable: Add a
Deferrable ()instance The
Deferrable (a ~ b)instance now shows the
bwhen a type mismatch error is thrown Add
deferEither_, counterparts to
deferEitherwhich do not require proxy arguments Enable
PolyKinds. This allows the
Deferrable (a ~ binstance 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
ForallTin terms of
InstV(supporting a variable number of parameters) * Add a
Data.Constraint.Symbol, which contain utilities for working with
KnownSymbolconstraints, respectively. These modules are only available on GHC 8.0 or later.
- GHC 8 compatibility
- Dropped support for GHC 7.6 in favor of a nicer Bottom representation.
Found a nicer encoding of the initial object in the category of constraints using a nullary constraint.
Remove the need for closed type families from the new
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+
Acknowledge we actually need at least base 4.5
Restore support for building on older GHCs
Minor documentation fixes.
- Added a lot of documentation.
(:-)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.
Explicit role annotations
- Fixed build failures.
- Fixed an unused import warning on older GHCs.